---
Fuzzer filename: '/src/fuzzer.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 76
      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:43,7'
          Dst:             make_sub_pool
        - Src:             'fuzzer.c:49,3'
          Dst:             init_json
        - Src:             'fuzzer.c:51,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:52,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:55,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:56,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:59,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:60,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:63,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:64,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:68,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:69,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:71,3'
          Dst:             finish_json
        - Src:             'fuzzer.c:72,3'
          Dst:             destroy_pool
    - functionName:    scoreboard_valid_pid
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1392
      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:1372,9'
          Dst:             kill
        - Src:             'scoreboard.c:1374,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1381,9'
          Dst:             getpgid
        - Src:             'scoreboard.c:1382,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1385,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:    2573
      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: 1394
      functionLinenumberEnd: 1575
      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:1404,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1405,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1410,3'
          Dst:             pr_privs_root
        - Src:             'scoreboard.c:1411,13'
          Dst:             pr_get_scoreboard
        - Src:             'scoreboard.c:1411,8'
          Dst:             open
        - Src:             'scoreboard.c:1412,12'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1413,3'
          Dst:             pr_privs_relinquish
        - Src:             'scoreboard.c:1417,7'
          Dst:             pr_get_scoreboard
        - Src:             'scoreboard.c:1417,28'
          Dst:             strerror
        - Src:             'scoreboard.c:1416,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1419,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1424,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:1426,14'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1428,12'
          Dst:             close
        - Src:             'scoreboard.c:1430,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1435,15'
          Dst:             getpgrp
        - Src:             'scoreboard.c:1441,17'
          Dst:             lseek
        - Src:             'scoreboard.c:1443,14'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1445,5'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:1446,12'
          Dst:             close
        - Src:             'scoreboard.c:1448,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1454,3'
          Dst:             pr_privs_root
        - Src:             'scoreboard.c:1457,5'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1463,9'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:1467,21'
          Dst:             lseek
        - Src:             'scoreboard.c:1473,11'
          Dst:             strerror
        - Src:             'scoreboard.c:1471,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1481,11'
          Dst:             read
        - Src:             'scoreboard.c:1484,7'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1494,11'
          Dst:             scoreboard_valid_pid
        - Src:             'scoreboard.c:1500,9'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1504,13'
          Dst:             lseek
        - Src:             'scoreboard.c:1505,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1508,13'
          Dst:             strerror
        - Src:             'scoreboard.c:1507,11'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1513,13'
          Dst:             strerror
        - Src:             'scoreboard.c:1510,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1524,15'
          Dst:             write
        - Src:             'scoreboard.c:1527,22'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1530,15'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1531,21'
          Dst:             write
        - Src:             'scoreboard.c:1536,15'
          Dst:             strerror
        - Src:             'scoreboard.c:1535,13'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1539,41'
          Dst:             strerror
        - Src:             'scoreboard.c:1537,13'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1543,13'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:1551,7'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1554,21'
          Dst:             lseek
        - Src:             'scoreboard.c:1563,3'
          Dst:             pr_privs_relinquish
        - Src:             'scoreboard.c:1566,3'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:1569,10'
          Dst:             close
        - Src:             'scoreboard.c:1571,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1572,3'
          Dst:             pr_trace_msg
    - functionName:    pr_get_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 459
      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:    779
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wlock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 245
      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:240,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: 248
      functionLinenumberEnd: 256
      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:251,9'
          Dst:             pr_lock_scoreboard
    - functionName:    wlock_entry
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 328
      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:327,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: 317
      functionLinenumberEnd: 321
      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:320,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: 259
      functionLinenumberEnd: 315
      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:267,16'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:272,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:275,10'
          Dst:             fcntl
        - Src:             'scoreboard.c:276,18'
          Dst:             __errno_location
        - Src:             'scoreboard.c:279,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:291,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:293,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:295,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:296,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:304,23'
          Dst:             strerror
        - Src:             'scoreboard.c:303,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:306,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:310,3'
          Dst:             pr_trace_msg
    - functionName:    get_lock_type
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 147
      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:129,3'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:143,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: 150
      functionLinenumberEnd: 224
      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:160,16'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:165,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:168,10'
          Dst:             fcntl
        - Src:             'scoreboard.c:169,18'
          Dst:             __errno_location
        - Src:             'scoreboard.c:172,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:178,28'
          Dst:             strerror
        - Src:             'scoreboard.c:176,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:183,11'
          Dst:             fcntl
        - Src:             'scoreboard.c:186,11'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:184,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:199,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:201,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:203,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:204,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:212,9'
          Dst:             strerror
        - Src:             'scoreboard.c:210,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:215,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:219,3'
          Dst:             pr_trace_msg
    - functionName:    handle_score_str
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 70
      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:67,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: 1093
      functionLinenumberEnd: 1141
      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: 1145
      functionLinenumberEnd: 1360
      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:    14
      BranchProfiles:
        - Branch String:   'scoreboard.c:1171,5'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:1155,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1160,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1164,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1169,5'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1176,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1175,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1178,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1186,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'scoreboard.c:1185,11'
          Dst:             pr_snprintf
        - Src:             'scoreboard.c:1190,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1205,13'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1204,11'
          Dst:             snprintf
        - Src:             'scoreboard.c:1209,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1217,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1219,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1227,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1226,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1229,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1236,18'
          Dst:             handle_score_str
        - Src:             'scoreboard.c:1239,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1242,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1250,18'
          Dst:             handle_score_str
        - Src:             'scoreboard.c:1254,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1253,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1257,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1264,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1273,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'scoreboard.c:1272,9'
          Dst:             pr_snprintf
        - Src:             'scoreboard.c:1277,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1285,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1287,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1295,9'
          Dst:             time
        - Src:             'scoreboard.c:1296,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1304,9'
          Dst:             time
        - Src:             'scoreboard.c:1305,9'
          Dst:             pr_trace_msg
        - 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:1336,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1337,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1343,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1351,3'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:1352,7'
          Dst:             write_entry
        - Src:             'scoreboard.c:1354,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1354,7'
          Dst:             strerror
        - Src:             'scoreboard.c:1353,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:1356,3'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1358,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:    38
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_entry
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_signals_handle
        - pwrite
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:341,9'
          Dst:             pwrite
        - Src:             'scoreboard.c:348,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:349,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:351,15'
          Dst:             pwrite
        - Src:             'scoreboard.c:362,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:365,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: 1052
      functionLinenumberEnd: 1086
      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:1060,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1069,17'
          Dst:             getpgrp
        - Src:             'scoreboard.c:1074,9'
          Dst:             getpgid
        - Src:             'scoreboard.c:1075,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1078,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1084,9'
          Dst:             kill
    - functionName:    pr_scoreboard_entry_get
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:
        - Branch String:   'scoreboard.c:1019,3'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:1005,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1010,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1015,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1048,3'
          Dst:             __errno_location
    - functionName:    rlock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 234
      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:229,9'
          Dst:             pr_lock_scoreboard
    - functionName:    pr_scoreboard_entry_read
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 997
      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:955,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:963,11'
          Dst:             rlock_scoreboard
        - Src:             'scoreboard.c:969,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:975,19'
          Dst:             read
        - Src:             'scoreboard.c:976,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:980,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:984,7'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:985,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:990,7'
          Dst:             unlock_scoreboard
    - functionName:    pr_scoreboard_get_daemon_uptime
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 938
      functionLinenumberEnd: 944
      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: 930
      functionLinenumberEnd: 936
      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: 890
      functionLinenumberEnd: 928
      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:896,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:901,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:905,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:910,3'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:915,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:917,7'
          Dst:             write_entry
        - Src:             'scoreboard.c:920,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:920,7'
          Dst:             strerror
        - Src:             'scoreboard.c:919,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:924,3'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:925,3'
          Dst:             unlock_entry
    - functionName:    pr_scoreboard_entry_add
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 888
      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:818,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:823,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:825,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:829,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:832,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:838,3'
          Dst:             pr_signals_block
        - Src:             'scoreboard.c:844,19'
          Dst:             read
        - Src:             'scoreboard.c:851,30'
          Dst:             lseek
        - Src:             'scoreboard.c:858,28'
          Dst:             lseek
        - Src:             'scoreboard.c:869,47'
          Dst:             getpid
        - Src:             'scoreboard.c:870,19'
          Dst:             geteuid
        - Src:             'scoreboard.c:871,19'
          Dst:             getegid
        - Src:             'scoreboard.c:873,9'
          Dst:             write_entry
        - Src:             'scoreboard.c:876,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:876,7'
          Dst:             strerror
        - Src:             'scoreboard.c:875,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:882,3'
          Dst:             pr_signals_unblock
        - Src:             'scoreboard.c:885,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: 799
      functionLinenumberEnd: 807
      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:801,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:805,3'
          Dst:             sstrncpy
    - functionName:    set_scoreboard_path
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 747
      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:707,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:711,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:713,9'
          Dst:             strrchr
        - Src:             'scoreboard.c:715,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:726,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:732,7'
          Dst:             stat
        - Src:             'scoreboard.c:737,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:742,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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_set_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_str_is_boolean
        - pr_trace_msg
        - set_scoreboard_path
        - sstrcat
        - sstrncpy
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:755,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:763,7'
          Dst:             pr_str_is_boolean
        - Src:             'scoreboard.c:764,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:770,7'
          Dst:             strcasecmp
        - Src:             'scoreboard.c:771,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:777,7'
          Dst:             strcmp
        - Src:             'scoreboard.c:778,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:784,7'
          Dst:             set_scoreboard_path
        - Src:             'scoreboard.c:788,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:793,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:794,3'
          Dst:             sstrcat
    - 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:    286
      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:    283
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_rewind_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 699
      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:679,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:683,9'
          Dst:             lseek
        - Src:             'scoreboard.c:693,7'
          Dst:             lseek
    - functionName:    pr_restore_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 669
      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:649,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:657,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:664,7'
          Dst:             lseek
    - functionName:    read_scoreboard_header
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 124
      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:76,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:81,9'
          Dst:             read
        - Src:             'scoreboard.c:84,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:88,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:89,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:101,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:103,12'
          Dst:             pr_close_scoreboard
        - Src:             'scoreboard.c:108,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:111,12'
          Dst:             pr_close_scoreboard
        - Src:             'scoreboard.c:116,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:119,12'
          Dst:             pr_close_scoreboard
    - functionName:    pr_close_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 410
      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:392,5'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:395,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:397,10'
          Dst:             close
        - Src:             'scoreboard.c:401,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:404,12'
          Dst:             close
    - functionName:    pr_open_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 641
      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:475,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:484,28'
          Dst:             getpid
        - Src:             'scoreboard.c:485,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:490,7'
          Dst:             lstat
        - Src:             'scoreboard.c:493,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:498,7'
          Dst:             lstat
        - Src:             'scoreboard.c:500,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:505,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:507,19'
          Dst:             open
        - Src:             'scoreboard.c:509,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:510,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:511,23'
          Dst:             open
        - Src:             'scoreboard.c:519,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'scoreboard.c:521,44'
          Dst:             __errno_location
        - Src:             'scoreboard.c:521,35'
          Dst:             strerror
        - Src:             'scoreboard.c:520,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:528,10'
          Dst:             fchmod
        - Src:             'scoreboard.c:529,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:530,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:546,27'
          Dst:             open
        - Src:             'scoreboard.c:549,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:551,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:552,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:553,31'
          Dst:             open
        - Src:             'scoreboard.c:558,14'
          Dst:             close
        - Src:             'scoreboard.c:562,27'
          Dst:             strerror
        - Src:             'scoreboard.c:561,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:564,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:569,9'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'scoreboard.c:571,68'
          Dst:             __errno_location
        - Src:             'scoreboard.c:571,59'
          Dst:             strerror
        - Src:             'scoreboard.c:570,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:575,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:579,23'
          Dst:             getpid
        - Src:             'scoreboard.c:582,9'
          Dst:             read_scoreboard_header
        - Src:             'scoreboard.c:591,24'
          Dst:             getpid
        - Src:             'scoreboard.c:592,27'
          Dst:             time
        - Src:             'scoreboard.c:600,5'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:602,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:604,14'
          Dst:             close
        - Src:             'scoreboard.c:607,14'
          Dst:             close
        - Src:             'scoreboard.c:610,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:614,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:616,12'
          Dst:             write
        - Src:             'scoreboard.c:617,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:619,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:620,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:624,7'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:626,14'
          Dst:             close
        - Src:             'scoreboard.c:629,14'
          Dst:             close
        - Src:             'scoreboard.c:632,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:636,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:    7
      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: 462
      functionLinenumberEnd: 463
      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: 412
      functionLinenumberEnd: 456
      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:418,12'
          Dst:             close
        - Src:             'scoreboard.c:422,12'
          Dst:             close
        - Src:             'scoreboard.c:434,7'
          Dst:             strcmp
        - Src:             'scoreboard.c:437,9'
          Dst:             stat
        - Src:             'scoreboard.c:438,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:442,12'
          Dst:             unlink
        - Src:             'scoreboard.c:443,12'
          Dst:             unlink
        - Src:             'scoreboard.c:449,9'
          Dst:             stat
        - Src:             'scoreboard.c:450,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:454,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: 45
      functionLinenumberEnd: 78
      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:50,5'
          Dst:             __errno_location
        - Src:             'sstrncpy.c:55,5'
          Dst:             __errno_location
    - functionName:    get_node_from_val
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 448
      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:411,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:413,14'
          Dst:             json_mknull
        - Src:             'json.c:417,14'
          Dst:             json_mkbool
        - Src:             'json.c:421,14'
          Dst:             json_mknumber
        - Src:             'json.c:425,14'
          Dst:             json_mkstring
    - functionName:    finish_json
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1147
      functionLinenumberEnd: 1149
      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:1148,3'
          Dst:             json_set_oom
    - functionName:    init_json
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1144
      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:1143,3'
          Dst:             json_set_oom
        - Src:             'json.c:1143,3'
          Dst:             json_oom
    - functionName:    json_oom
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1138
      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:1137,3'
          Dst:             pr_log_pri
        - Src:             'json.c:1138,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: 1100
      functionLinenumberEnd: 1133
      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:1103,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:1129,7'
          Dst:             __errno_location
    - functionName:    pr_json_text_validate
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1098
      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:1093,5'
          Dst:             __errno_location
        - Src:             'json.c:1097,10'
          Dst:             json_validate
    - functionName:    pr_json_array_get_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1082
      functionLinenumberEnd: 1088
      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:1083,7'
          Dst:             can_get_item
        - Src:             'json.c:1087,10'
          Dst:             get_item
    - functionName:    can_get_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 928
      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:917,5'
          Dst:             __errno_location
        - Src:             'json.c:923,5'
          Dst:             __errno_location
    - functionName:    get_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 957
      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:945,10'
          Dst:             json_find_element
        - Src:             'json.c:947,5'
          Dst:             __errno_location
        - Src:             'json.c:952,5'
          Dst:             __errno_location
        - Src:             'json.c:956,10'
          Dst:             get_val_from_node
    - functionName:    get_val_from_node
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 388
      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:305,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:301,5'
          Dst:             __errno_location
        - Src:             'json.c:320,26'
          Dst:             pstrdup
        - Src:             'json.c:330,15'
          Dst:             alloc_array
        - Src:             'json.c:342,23'
          Dst:             json_encode
        - Src:             'json.c:343,24'
          Dst:             json_decode
        - Src:             'json.c:347,24'
          Dst:             json_mkarray
        - Src:             'json.c:349,27'
          Dst:             get_count
        - Src:             'json.c:358,16'
          Dst:             alloc_object
        - Src:             'json.c:370,23'
          Dst:             json_encode
        - Src:             'json.c:371,26'
          Dst:             json_decode
        - Src:             'json.c:375,26'
          Dst:             json_mkobject
        - Src:             'json.c:377,30'
          Dst:             get_count
    - functionName:    alloc_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 53
      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:47,14'
          Dst:             make_sub_pool
        - Src:             'json.c:48,3'
          Dst:             pr_pool_tag
        - Src:             'json.c:50,10'
          Dst:             pcalloc
    - functionName:    get_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 79
      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:73,26'
          Dst:             json_first_child
    - functionName:    alloc_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 66
      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:60,14'
          Dst:             make_sub_pool
        - Src:             'json.c:61,3'
          Dst:             pr_pool_tag
        - Src:             'json.c:63,10'
          Dst:             pcalloc
    - functionName:    pr_json_array_append_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1079
      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:1069,7'
          Dst:             can_add_item
        - Src:             'json.c:1074,5'
          Dst:             __errno_location
        - Src:             'json.c:1078,10'
          Dst:             append_item
    - functionName:    can_add_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 939
      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:934,5'
          Dst:             __errno_location
    - functionName:    append_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 967
      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:963,10'
          Dst:             get_node_from_val
        - Src:             'json.c:964,3'
          Dst:             json_append_element
    - functionName:    pr_json_array_get_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1065
      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:1060,7'
          Dst:             can_get_item
        - Src:             'json.c:1064,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1045
      functionLinenumberEnd: 1056
      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:1046,7'
          Dst:             can_add_item
        - Src:             'json.c:1051,5'
          Dst:             __errno_location
        - Src:             'json.c:1055,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1042
      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:1037,7'
          Dst:             can_get_item
        - Src:             'json.c:1041,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1033
      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:1023,7'
          Dst:             can_add_item
        - Src:             'json.c:1028,5'
          Dst:             __errno_location
        - Src:             'json.c:1032,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1019
      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:1014,7'
          Dst:             can_get_item
        - Src:             'json.c:1018,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1010
      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:1005,7'
          Dst:             can_add_item
        - Src:             'json.c:1009,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 996
      functionLinenumberEnd: 1002
      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:997,7'
          Dst:             can_get_item
        - Src:             'json.c:1001,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 993
      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:988,7'
          Dst:             can_add_item
        - Src:             'json.c:992,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 985
      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:980,7'
          Dst:             can_get_item
        - Src:             'json.c:984,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 976
      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:971,7'
          Dst:             can_add_item
        - Src:             'json.c:975,10'
          Dst:             append_item
    - functionName:    pr_json_array_exists
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 910
      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:900,5'
          Dst:             __errno_location
        - Src:             'json.c:904,10'
          Dst:             json_find_element
    - functionName:    pr_json_array_remove
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 894
      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:879,5'
          Dst:             __errno_location
        - Src:             'json.c:883,10'
          Dst:             json_find_element
        - Src:             'json.c:886,5'
          Dst:             json_delete
    - functionName:    pr_json_array_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 873
      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:868,5'
          Dst:             __errno_location
    - functionName:    pr_json_array_to_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 864
      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:859,5'
          Dst:             __errno_location
        - Src:             'json.c:863,10'
          Dst:             get_text
    - functionName:    get_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 106
      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:87,5'
          Dst:             __errno_location
        - Src:             'json.c:99,9'
          Dst:             json_stringify
        - Src:             'json.c:101,12'
          Dst:             pstrdup
    - functionName:    pr_json_array_from_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 854
      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:829,5'
          Dst:             __errno_location
        - Src:             'json.c:833,7'
          Dst:             json_validate
        - Src:             'json.c:834,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:836,5'
          Dst:             __errno_location
        - Src:             'json.c:840,10'
          Dst:             json_decode
        - Src:             'json.c:842,5'
          Dst:             json_delete
        - Src:             'json.c:844,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:845,5'
          Dst:             __errno_location
        - Src:             'json.c:849,10'
          Dst:             alloc_array
        - Src:             'json.c:851,22'
          Dst:             get_count
    - functionName:    pr_json_array_foreach
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 821
      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:748,5'
          Branch Sides:    []
        - Branch String:   'json.c:801,5'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:726,5'
          Dst:             __errno_location
        - Src:             'json.c:730,15'
          Dst:             json_first_child
        - Src:             'json.c:735,5'
          Dst:             pr_signals_handle
        - Src:             'json.c:737,16'
          Dst:             get_type
        - Src:             'json.c:739,16'
          Dst:             __errno_location
        - Src:             'json.c:741,7'
          Dst:             pr_trace_msg
        - Src:             'json.c:744,7'
          Dst:             __errno_location
        - Src:             'json.c:766,17'
          Dst:             strlen
        - Src:             'json.c:772,16'
          Dst:             get_val_from_node
        - Src:             'json.c:784,16'
          Dst:             get_val_from_node
        - Src:             'json.c:799,14'
          Dst:             __errno_location
        - Src:             'json.c:803,9'
          Dst:             pr_json_array_free
        - Src:             'json.c:807,9'
          Dst:             pr_json_object_free
        - Src:             'json.c:815,7'
          Dst:             __errno_location
    - functionName:    get_type
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 142
      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:111,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:137,7'
          Dst:             __errno_location
    - 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:    250
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_json_array_free
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 716
      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:707,5'
          Dst:             __errno_location
        - Src:             'json.c:711,3'
          Dst:             json_delete
        - Src:             'json.c:714,3'
          Dst:             destroy_pool
    - functionName:    pr_json_object_free
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 171
      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:162,5'
          Dst:             __errno_location
        - Src:             'json.c:166,3'
          Dst:             json_delete
        - Src:             'json.c:169,3'
          Dst:             destroy_pool
    - functionName:    pr_json_array_alloc
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 703
      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:695,5'
          Dst:             __errno_location
        - Src:             'json.c:699,10'
          Dst:             alloc_array
        - Src:             'json.c:700,17'
          Dst:             json_mkarray
    - functionName:    pr_json_object_set_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 687
      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:677,7'
          Dst:             can_set_member
        - Src:             'json.c:682,5'
          Dst:             __errno_location
        - Src:             'json.c:686,10'
          Dst:             set_member
    - functionName:    can_set_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 294
      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:289,5'
          Dst:             __errno_location
    - functionName:    set_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 459
      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:455,10'
          Dst:             get_node_from_val
        - Src:             'json.c:456,3'
          Dst:             json_append_member
    - functionName:    pr_json_object_get_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 673
      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:668,7'
          Dst:             can_get_member
        - Src:             'json.c:672,10'
          Dst:             get_member
    - functionName:    can_get_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 281
      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:270,5'
          Dst:             __errno_location
        - Src:             'json.c:276,5'
          Dst:             __errno_location
    - functionName:    get_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 406
      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:394,10'
          Dst:             json_find_member
        - Src:             'json.c:396,5'
          Dst:             __errno_location
        - Src:             'json.c:401,5'
          Dst:             __errno_location
        - Src:             'json.c:405,10'
          Dst:             get_val_from_node
    - functionName:    pr_json_object_set_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 664
      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:654,7'
          Dst:             can_set_member
        - Src:             'json.c:659,5'
          Dst:             __errno_location
        - Src:             'json.c:663,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 650
      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:645,7'
          Dst:             can_get_member
        - Src:             'json.c:649,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 641
      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:631,7'
          Dst:             can_set_member
        - Src:             'json.c:636,5'
          Dst:             __errno_location
        - Src:             'json.c:640,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 627
      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:622,7'
          Dst:             can_get_member
        - Src:             'json.c:626,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 618
      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:613,7'
          Dst:             can_set_member
        - Src:             'json.c:617,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 609
      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:604,7'
          Dst:             can_get_member
        - Src:             'json.c:608,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 600
      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:595,7'
          Dst:             can_set_member
        - Src:             'json.c:599,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 592
      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:587,7'
          Dst:             can_get_member
        - Src:             'json.c:591,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 583
      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:578,7'
          Dst:             can_set_member
        - Src:             'json.c:582,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 574
      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:569,7'
          Dst:             can_get_member
        - Src:             'json.c:573,10'
          Dst:             get_member
    - functionName:    pr_json_object_foreach
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 565
      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:492,5'
          Branch Sides:    []
        - Branch String:   'json.c:545,5'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:470,5'
          Dst:             __errno_location
        - Src:             'json.c:474,15'
          Dst:             json_first_child
        - Src:             'json.c:479,5'
          Dst:             pr_signals_handle
        - Src:             'json.c:481,16'
          Dst:             get_type
        - Src:             'json.c:483,16'
          Dst:             __errno_location
        - Src:             'json.c:485,7'
          Dst:             pr_trace_msg
        - Src:             'json.c:488,7'
          Dst:             __errno_location
        - Src:             'json.c:510,17'
          Dst:             strlen
        - Src:             'json.c:516,16'
          Dst:             get_val_from_node
        - Src:             'json.c:528,16'
          Dst:             get_val_from_node
        - Src:             'json.c:543,14'
          Dst:             __errno_location
        - Src:             'json.c:547,9'
          Dst:             pr_json_array_free
        - Src:             'json.c:551,9'
          Dst:             pr_json_object_free
        - Src:             'json.c:559,7'
          Dst:             __errno_location
    - functionName:    pr_json_object_exists
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 262
      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:252,5'
          Dst:             __errno_location
        - Src:             'json.c:256,10'
          Dst:             json_find_member
    - functionName:    pr_json_object_remove
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 245
      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:230,5'
          Dst:             __errno_location
        - Src:             'json.c:234,10'
          Dst:             json_find_member
        - Src:             'json.c:237,5'
          Dst:             json_delete
    - functionName:    pr_json_object_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 223
      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:218,5'
          Dst:             __errno_location
    - functionName:    pr_json_object_to_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 214
      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:209,5'
          Dst:             __errno_location
        - Src:             'json.c:213,10'
          Dst:             get_text
    - functionName:    pr_json_object_from_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 204
      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:179,5'
          Dst:             __errno_location
        - Src:             'json.c:183,7'
          Dst:             json_validate
        - Src:             'json.c:184,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:186,5'
          Dst:             __errno_location
        - Src:             'json.c:190,10'
          Dst:             json_decode
        - Src:             'json.c:192,5'
          Dst:             json_delete
        - Src:             'json.c:194,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:195,5'
          Dst:             __errno_location
        - Src:             'json.c:199,10'
          Dst:             alloc_object
        - Src:             'json.c:201,24'
          Dst:             get_count
    - functionName:    pr_json_object_alloc
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 158
      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:150,5'
          Dst:             __errno_location
        - Src:             'json.c:154,10'
          Dst:             alloc_object
        - Src:             'json.c:155,18'
          Dst:             json_mkobject
    - functionName:    trace_write
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 202
      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:111,14'
          Dst:             make_sub_pool
        - Src:             'trace.c:112,3'
          Dst:             pr_pool_tag
        - Src:             'trace.c:121,7'
          Dst:             gettimeofday
        - Src:             'trace.c:122,12'
          Dst:             pr_localtime
        - Src:             'trace.c:124,13'
          Dst:             strftime
        - Src:             'trace.c:130,13'
          Dst:             pr_snprintf
        - Src:             'trace.c:136,13'
          Dst:             time
        - Src:             'trace.c:137,12'
          Dst:             pr_localtime
        - Src:             'trace.c:139,13'
          Dst:             strftime
        - Src:             'trace.c:155,51'
          Dst:             getpid
        - Src:             'trace.c:154,11'
          Dst:             pr_snprintf
        - Src:             'trace.c:163,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'trace.c:164,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'trace.c:165,19'
          Dst:             pr_netaddr_get_port
        - Src:             'trace.c:169,51'
          Dst:             getpid
        - Src:             'trace.c:167,11'
          Dst:             pr_snprintf
        - Src:             'trace.c:175,3'
          Dst:             destroy_pool
        - Src:             'trace.c:190,3'
          Dst:             pr_log_event_generate
        - Src:             'trace.c:201,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: 545
      functionLinenumberEnd: 627
      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:559,5'
          Dst:             __errno_location
        - Src:             'trace.c:564,5'
          Dst:             __errno_location
        - Src:             'trace.c:573,15'
          Dst:             pr_log_event_listening
        - Src:             'trace.c:575,12'
          Dst:             trace_get_levels
        - Src:             'trace.c:602,12'
          Dst:             pr_vsnprintf
        - Src:             'trace.c:621,5'
          Dst:             pr_signals_handle
        - Src:             'trace.c:626,10'
          Dst:             trace_write
    - functionName:    trace_get_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 234
      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:217,5'
          Dst:             __errno_location
        - Src:             'trace.c:223,5'
          Dst:             __errno_location
        - Src:             'trace.c:227,11'
          Dst:             pr_table_get
        - Src:             'trace.c:229,5'
          Dst:             __errno_location
    - functionName:    pr_trace_msg
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 542
      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:    911
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:527,5'
          Dst:             __errno_location
        - Src:             'trace.c:533,7'
          Dst:             pr_log_event_listening
        - Src:             'trace.c:538,9'
          Dst:             pr_trace_vmsg
    - functionName:    pr_trace_use_stderr
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 518
      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:503,11'
          Dst:             dup
        - Src:             'trace.c:509,12'
          Dst:             close
        - Src:             'trace.c:513,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: 494
      functionLinenumberEnd: 496
      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_cleanup
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:79,3'
          Dst:             destroy_pool
    - functionName:    trace_restart_ev
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 97
      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:87,10'
          Dst:             close
        - Src:             'trace.c:91,5'
          Dst:             destroy_pool
        - Src:             'trace.c:95,5'
          Dst:             pr_event_unregister
        - Src:             'trace.c:95,5'
          Dst:             trace_restart_ev
    - functionName:    pr_trace_set_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          229
      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
        - register_cleanup2
        - strcmp
        - trace_cleanup
        - trace_restart_ev
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:416,7'
          Dst:             __errno_location
        - Src:             'trace.c:424,5'
          Dst:             __errno_location
        - Src:             'trace.c:434,18'
          Dst:             make_sub_pool
        - Src:             'trace.c:435,5'
          Dst:             pr_pool_tag
        - Src:             'trace.c:437,17'
          Dst:             pr_table_alloc
        - Src:             'trace.c:440,5'
          Dst:             pr_event_register
        - Src:             'trace.c:440,5'
          Dst:             trace_restart_ev
        - Src:             'trace.c:443,5'
          Dst:             register_cleanup2
        - Src:             'trace.c:443,5'
          Dst:             trace_cleanup
        - Src:             'trace.c:449,14'
          Dst:             pcalloc
        - Src:             'trace.c:453,9'
          Dst:             strcmp
        - Src:             'trace.c:456,15'
          Dst:             pr_table_exists
        - Src:             'trace.c:458,37'
          Dst:             pstrdup
        - Src:             'trace.c:458,13'
          Dst:             pr_table_add
        - Src:             'trace.c:464,37'
          Dst:             pstrdup
        - Src:             'trace.c:464,13'
          Dst:             pr_table_set
        - Src:             'trace.c:474,16'
          Dst:             pr_trace_set_levels
        - Src:             'trace.c:479,9'
          Dst:             strcmp
        - Src:             'trace.c:480,14'
          Dst:             pr_table_remove
        - Src:             'trace.c:486,16'
          Dst:             pr_table_remove
    - functionName:    pr_trace_set_file
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 411
      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:372,7'
          Dst:             __errno_location
        - Src:             'trace.c:376,12'
          Dst:             close
        - Src:             'trace.c:381,3'
          Dst:             pr_signals_block
        - Src:             'trace.c:382,3'
          Dst:             pr_privs_root
        - Src:             'trace.c:383,9'
          Dst:             pr_log_openfile
        - Src:             'trace.c:384,12'
          Dst:             __errno_location
        - Src:             'trace.c:385,3'
          Dst:             pr_privs_relinquish
        - Src:             'trace.c:386,3'
          Dst:             pr_signals_unblock
        - Src:             'trace.c:391,9'
          Dst:             strerror
        - Src:             'trace.c:390,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:392,7'
          Dst:             __errno_location
        - Src:             'trace.c:395,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:398,7'
          Dst:             __errno_location
        - Src:             'trace.c:401,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:404,7'
          Dst:             __errno_location
    - functionName:    pr_trace_parse_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 365
      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:269,5'
          Dst:             __errno_location
        - Src:             'trace.c:275,5'
          Dst:             __errno_location
        - Src:             'trace.c:281,5'
          Dst:             __errno_location
        - Src:             'trace.c:285,9'
          Dst:             strchr
        - Src:             'trace.c:288,5'
          Dst:             __errno_location
        - Src:             'trace.c:289,18'
          Dst:             strtol
        - Src:             'trace.c:290,9'
          Dst:             __errno_location
        - Src:             'trace.c:291,7'
          Dst:             __errno_location
        - Src:             'trace.c:296,7'
          Dst:             __errno_location
        - Src:             'trace.c:301,7'
          Dst:             __errno_location
        - Src:             'trace.c:322,15'
          Dst:             strtol
        - Src:             'trace.c:323,7'
          Dst:             __errno_location
        - Src:             'trace.c:324,5'
          Dst:             __errno_location
        - Src:             'trace.c:330,5'
          Dst:             __errno_location
        - Src:             'trace.c:336,5'
          Dst:             __errno_location
        - Src:             'trace.c:341,16'
          Dst:             strtol
        - Src:             'trace.c:342,7'
          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
        - Src:             'trace.c:358,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:    74
      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: 251
      functionLinenumberEnd: 260
      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:254,12'
          Dst:             trace_get_levels
    - functionName:    pr_trace_get_max_level
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 249
      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:243,12'
          Dst:             trace_get_levels
    - functionName:    pr_trace_get_level
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 237
      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:237,10'
          Dst:             pr_trace_get_max_level
    - functionName:    pr_trace_get_table
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 211
      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:206,5'
          Dst:             __errno_location
    - functionName:    set_server_privs
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1144
      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:1115,18'
          Dst:             geteuid
        - Src:             'src/main.c:1116,18'
          Dst:             getegid
        - Src:             'src/main.c:1118,9'
          Dst:             get_param_ptr
        - Src:             'src/main.c:1127,10'
          Dst:             get_param_ptr
        - Src:             'src/main.c:1137,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1142,5'
          Dst:             pr_privs_setup
    - functionName:    fork_server
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1569
      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:1201,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1166,9'
          Dst:             pipe
        - Src:             'src/main.c:1167,63'
          Dst:             __errno_location
        - Src:             'src/main.c:1167,54'
          Dst:             strerror
        - Src:             'src/main.c:1167,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1168,14'
          Dst:             close
        - Src:             'src/main.c:1175,17'
          Dst:             pr_fs_get_usable_fd
        - Src:             'src/main.c:1180,12'
          Dst:             fcntl
        - Src:             'src/main.c:1187,5'
          Dst:             sigemptyset
        - 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:1191,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1193,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1195,52'
          Dst:             __errno_location
        - Src:             'src/main.c:1195,43'
          Dst:             strerror
        - Src:             'src/main.c:1194,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1198,11'
          Dst:             fork
        - Src:             'src/main.c:1199,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1206,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1208,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1208,47'
          Dst:             strerror
        - Src:             'src/main.c:1207,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1212,14'
          Dst:             close
        - Src:             'src/main.c:1216,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1218,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1218,47'
          Dst:             strerror
        - Src:             'src/main.c:1217,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1221,56'
          Dst:             strerror
        - Src:             'src/main.c:1221,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1224,14'
          Dst:             close
        - Src:             'src/main.c:1225,14'
          Dst:             close
        - Src:             'src/main.c:1226,14'
          Dst:             close
        - Src:             'src/main.c:1232,14'
          Dst:             close
        - Src:             'src/main.c:1234,7'
          Dst:             child_add
        - Src:             'src/main.c:1235,14'
          Dst:             close
        - Src:             'src/main.c:1240,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1242,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1242,47'
          Dst:             strerror
        - Src:             'src/main.c:1241,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1249,17'
          Dst:             getpid
        - Src:             'src/main.c:1252,3'
          Dst:             pr_ipbind_close_listeners
        - Src:             'src/main.c:1273,3'
          Dst:             pr_random_init
        - Src:             'src/main.c:1278,7'
          Dst:             signal
        - Src:             'src/main.c:1278,7'
          Dst:             pr_signals_handle_disconnect
        - Src:             'src/main.c:1281,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1281,7'
          Dst:             strerror
        - Src:             'src/main.c:1279,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1284,7'
          Dst:             signal
        - Src:             'src/main.c:1284,7'
          Dst:             pr_signals_handle_event
        - Src:             'src/main.c:1287,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1287,7'
          Dst:             strerror
        - Src:             'src/main.c:1285,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1290,7'
          Dst:             signal
        - Src:             'src/main.c:1293,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1293,7'
          Dst:             strerror
        - Src:             'src/main.c:1291,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1296,7'
          Dst:             signal
        - Src:             'src/main.c:1299,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1299,7'
          Dst:             strerror
        - Src:             'src/main.c:1297,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1312,3'
          Dst:             log_closesyslog
        - Src:             'src/main.c:1318,10'
          Dst:             pr_inet_openrw
        - Src:             'src/main.c:1323,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1328,3'
          Dst:             pr_signals_block
        - Src:             'src/main.c:1329,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1331,3'
          Dst:             log_opensyslog
        - Src:             'src/main.c:1333,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1334,3'
          Dst:             pr_signals_unblock
        - Src:             'src/main.c:1350,9'
          Dst:             strerror
        - Src:             'src/main.c:1349,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1354,9'
          Dst:             strerror
        - Src:             'src/main.c:1353,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1357,5'
          Dst:             exit
        - Src:             'src/main.c:1360,3'
          Dst:             pr_gettimeofday_millis
        - Src:             'src/main.c:1361,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1364,17'
          Dst:             pr_ipbind_get_server
        - Src:             'src/main.c:1369,18'
          Dst:             make_sub_pool
        - Src:             'src/main.c:1370,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:1383,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1382,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1384,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1389,7'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'src/main.c:1387,5'
          Dst:             pr_response_send
        - Src:             'src/main.c:1390,5'
          Dst:             exit
        - Src:             'src/main.c:1393,7'
          Dst:             find_config
        - Src:             'src/main.c:1404,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'src/main.c:1411,10'
          Dst:             close
        - Src:             'src/main.c:1415,11'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'src/main.c:1418,27'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'src/main.c:1421,5'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'src/main.c:1424,3'
          Dst:             pr_netaddr_set_sess_addrs
        - Src:             'src/main.c:1430,5'
          Dst:             time
        - Src:             'src/main.c:1436,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1439,11'
          Dst:             find_config
        - Src:             'src/main.c:1449,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1453,18'
          Dst:             make_sub_pool
        - Src:             'src/main.c:1454,7'
          Dst:             pr_pool_tag
        - 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:1459,44'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1459,26'
          Dst:             pstrdup
        - Src:             'src/main.c:1464,30'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1464,12'
          Dst:             pstrdup
        - Src:             'src/main.c:1456,16'
          Dst:             sreplace
        - Src:             'src/main.c:1471,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1469,7'
          Dst:             pr_log_auth
        - Src:             'src/main.c:1472,7'
          Dst:             pr_response_send
        - Src:             'src/main.c:1475,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:1476,7'
          Dst:             exit
        - Src:             'src/main.c:1490,3'
          Dst:             set_server_privs
        - Src:             'src/main.c:1493,24'
          Dst:             pr_class_match_addr
        - Src:             'src/main.c:1495,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1499,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1507,8'
          Dst:             login_check_limits
        - Src:             'src/main.c:1510,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1508,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1517,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:1522,19'
          Dst:             pr_table_alloc
        - Src:             'src/main.c:1525,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1525,7'
          Dst:             strerror
        - Src:             'src/main.c:1524,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1529,3'
          Dst:             timers_init
        - Src:             'src/main.c:1532,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1533,7'
          Dst:             modules_session_init
        - Src:             'src/main.c:1534,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:1537,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1540,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1539,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1542,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1541,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1546,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1544,3'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:1550,5'
          Dst:             pr_session_get_protocol
        - Src:             'src/main.c:1549,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1553,3'
          Dst:             pr_inet_set_async
        - Src:             'src/main.c:1555,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: 1571
      functionLinenumberEnd: 1596
      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:1573,23'
          Dst:             time
        - Src:             'src/main.c:1573,37'
          Dst:             child_count
        - Src:             'src/main.c:1576,5'
          Dst:             sigemptyset
        - Src:             'src/main.c:1577,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1578,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1579,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1580,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1582,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1584,52'
          Dst:             __errno_location
        - Src:             'src/main.c:1584,43'
          Dst:             strerror
        - Src:             'src/main.c:1583,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1587,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1588,5'
          Dst:             child_signal
        - Src:             'src/main.c:1589,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1591,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1593,54'
          Dst:             __errno_location
        - Src:             'src/main.c:1593,45'
          Dst:             strerror
        - Src:             'src/main.c:1592,7'
          Dst:             pr_log_pri
    - functionName:    daemon_loop
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1598
      functionLinenumberEnd: 1807
      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:1607,3'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:1609,3'
          Dst:             time
        - Src:             'src/main.c:1614,5'
          Dst:             run_schedule
        - Src:             'src/main.c:1617,13'
          Dst:             pr_ipbind_listen
        - Src:             'src/main.c:1620,13'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1623,11'
          Dst:             check_shutmsg
        - Src:             'src/main.c:1627,9'
          Dst:             disc_children
        - Src:             'src/main.c:1657,20'
          Dst:             time
        - Src:             'src/main.c:1659,11'
          Dst:             difftime
        - Src:             'src/main.c:1660,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1668,16'
          Dst:             ctime_r
        - Src:             'src/main.c:1676,41'
          Dst:             pr_str_strip_end
        - Src:             'src/main.c:1674,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1681,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1683,5'
          Dst:             select
        - Src:             'src/main.c:1684,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1688,7'
          Dst:             __errno_location
        - Src:             'src/main.c:1689,7'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:1692,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1699,7'
          Dst:             sigemptyset
        - Src:             'src/main.c:1700,7'
          Dst:             sigaddset
        - Src:             'src/main.c:1701,7'
          Dst:             sigaddset
        - Src:             'src/main.c:1702,7'
          Dst:             pr_alarms_block
        - Src:             'src/main.c:1703,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1705,54'
          Dst:             __errno_location
        - Src:             'src/main.c:1705,45'
          Dst:             strerror
        - Src:             'src/main.c:1704,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1709,7'
          Dst:             child_update
        - Src:             'src/main.c:1711,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1713,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1713,47'
          Dst:             strerror
        - Src:             'src/main.c:1712,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1716,7'
          Dst:             pr_alarms_unblock
        - Src:             'src/main.c:1722,7'
          Dst:             time
        - Src:             'src/main.c:1725,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1727,9'
          Dst:             exit
        - Src:             'src/main.c:1735,9'
          Dst:             strerror
        - Src:             'src/main.c:1734,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1748,9'
          Dst:             child_count
        - Src:             'src/main.c:1750,20'
          Dst:             time
        - Src:             'src/main.c:1752,17'
          Dst:             child_get
        - Src:             'src/main.c:1755,11'
          Dst:             close
        - Src:             'src/main.c:1752,43'
          Dst:             child_get
        - Src:             'src/main.c:1768,5'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:1775,19'
          Dst:             pr_ipbind_accept_conn
        - Src:             'src/main.c:1786,11'
          Dst:             child_count
        - Src:             'src/main.c:1787,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1789,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1792,9'
          Dst:             close
        - Src:             'src/main.c:1796,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1798,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1801,9'
          Dst:             close
        - Src:             'src/main.c:1805,9'
          Dst:             fork_server
    - functionName:    semaphore_fds
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 114
      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:99,7'
          Dst:             child_count
        - Src:             'src/main.c:102,15'
          Dst:             child_get
        - Src:             'src/main.c:103,7'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:102,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: 1818
      functionLinenumberEnd: 1885
      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:1827,3'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1826,9'
          Dst:             fork
        - Src:             'src/main.c:1829,7'
          Dst:             perror
        - Src:             'src/main.c:1838,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1847,3'
          Dst:             setsid
        - Src:             'src/main.c:1861,9'
          Dst:             fileno
        - Src:             'src/main.c:1861,3'
          Dst:             close
        - Src:             'src/main.c:1862,9'
          Dst:             fileno
        - Src:             'src/main.c:1862,3'
          Dst:             close
        - Src:             'src/main.c:1863,9'
          Dst:             fileno
        - Src:             'src/main.c:1863,3'
          Dst:             close
        - Src:             'src/main.c:1868,14'
          Dst:             getpid
        - Src:             'src/main.c:1868,3'
          Dst:             setpgid
        - Src:             'src/main.c:1881,10'
          Dst:             getpid
        - Src:             'src/main.c:1883,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: 2009
      functionLinenumberEnd: 2014
      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:2014,10'
          Dst:             strcmp
    - functionName:    show_os_release
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2130
      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:2096,8'
          Dst:             fopen
        - Src:             'src/main.c:2101,3'
          Dst:             printf
        - Src:             'src/main.c:2103,11'
          Dst:             getline
        - Src:             'src/main.c:2107,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:2110,9'
          Dst:             strstr
        - Src:             'src/main.c:2111,9'
          Dst:             strstr
        - Src:             'src/main.c:2112,9'
          Dst:             strstr
        - Src:             'src/main.c:2117,15'
          Dst:             getline
        - Src:             'src/main.c:2121,5'
          Dst:             printf
        - Src:             'src/main.c:2122,13'
          Dst:             getline
        - Src:             'src/main.c:2129,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: 1887
      functionLinenumberEnd: 1942
      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:1896,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1891,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1892,9'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1894,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1898,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1903,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1907,9'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1908,9'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:1909,13'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1910,24'
          Dst:             __errno_location
        - Src:             'src/main.c:1912,11'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1914,13'
          Dst:             strerror
        - Src:             'src/main.c:1913,11'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1921,20'
          Dst:             __errno_location
        - Src:             'src/main.c:1921,11'
          Dst:             strerror
        - Src:             'src/main.c:1920,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1925,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1926,3'
          Dst:             pr_close_scoreboard
        - Src:             'src/main.c:1928,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1930,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1933,7'
          Dst:             check_shutmsg
        - Src:             'src/main.c:1941,3'
          Dst:             fork_server
    - functionName:    standalone_main
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1944
      functionLinenumberEnd: 2007
      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:1969,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1948,5'
          Dst:             log_stderr
        - Src:             'src/main.c:1949,11'
          Dst:             fileno
        - Src:             'src/main.c:1949,5'
          Dst:             close
        - Src:             'src/main.c:1950,11'
          Dst:             fileno
        - Src:             'src/main.c:1950,5'
          Dst:             close
        - Src:             'src/main.c:1953,5'
          Dst:             log_stderr
        - Src:             'src/main.c:1954,11'
          Dst:             daemonize
        - Src:             'src/main.c:1963,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1964,3'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:1965,9'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1967,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1971,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1976,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1981,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1986,73'
          Dst:             __errno_location
        - Src:             'src/main.c:1986,64'
          Dst:             strerror
        - Src:             'src/main.c:1986,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1990,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1991,3'
          Dst:             pr_close_scoreboard
        - Src:             'src/main.c:1993,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1995,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1997,7'
          Dst:             pr_pidfile_write
        - Src:             'src/main.c:1998,62'
          Dst:             pr_pidfile_get
        - Src:             'src/main.c:1999,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1999,7'
          Dst:             strerror
        - Src:             'src/main.c:1998,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2000,5'
          Dst:             exit
        - Src:             'src/main.c:2003,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2006,3'
          Dst:             daemon_loop
    - functionName:    list_directives
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2021
      functionLinenumberEnd: 2060
      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:2029,14'
          Dst:             make_sub_pool
        - Src:             'src/main.c:2030,16'
          Dst:             make_array
        - Src:             'src/main.c:2034,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:2036,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:2039,24'
          Dst:             push_array
        - Src:             'src/main.c:2045,11'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:2048,3'
          Dst:             qsort
        - Src:             'src/main.c:2048,3'
          Dst:             conftab_cmp
        - Src:             'src/main.c:2051,3'
          Dst:             printf
        - Src:             'src/main.c:2056,5'
          Dst:             printf
        - Src:             'src/main.c:2059,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: 2430
      functionLinenumberEnd: 2443
      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:2433,3'
          Dst:             printf
        - Src:             'src/main.c:2436,5'
          Dst:             printf
        - Src:             'src/main.c:2440,5'
          Dst:             printf
        - Src:             'src/main.c:2443,3'
          Dst:             exit
    - functionName:    show_settings
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2132
      functionLinenumberEnd: 2370
      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:2138,3'
          Dst:             printf
        - Src:             'src/main.c:2139,3'
          Dst:             printf
        - Src:             'src/main.c:2145,9'
          Dst:             uname
        - Src:             'src/main.c:2147,5'
          Dst:             printf
        - Src:             'src/main.c:2150,5'
          Dst:             printf
        - Src:             'src/main.c:2157,3'
          Dst:             show_os_release
        - Src:             'src/main.c:2159,3'
          Dst:             printf
        - Src:             'src/main.c:2160,3'
          Dst:             printf
        - Src:             'src/main.c:2162,3'
          Dst:             printf
        - Src:             'src/main.c:2163,3'
          Dst:             printf
        - Src:             'src/main.c:2164,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:2171,3'
          Dst:             printf
        - Src:             'src/main.c:2172,3'
          Dst:             printf
        - Src:             'src/main.c:2173,3'
          Dst:             printf
        - Src:             'src/main.c:2182,3'
          Dst:             printf
        - Src:             'src/main.c:2184,3'
          Dst:             printf
        - Src:             'src/main.c:2192,3'
          Dst:             printf
        - Src:             'src/main.c:2200,3'
          Dst:             printf
        - Src:             'src/main.c:2204,3'
          Dst:             printf
        - Src:             'src/main.c:2208,3'
          Dst:             printf
        - Src:             'src/main.c:2216,3'
          Dst:             printf
        - Src:             'src/main.c:2226,3'
          Dst:             printf
        - Src:             'src/main.c:2236,3'
          Dst:             printf
        - Src:             'src/main.c:2240,3'
          Dst:             printf
        - Src:             'src/main.c:2246,3'
          Dst:             printf
        - Src:             'src/main.c:2254,3'
          Dst:             printf
        - Src:             'src/main.c:2260,3'
          Dst:             printf
        - Src:             'src/main.c:2268,3'
          Dst:             printf
        - Src:             'src/main.c:2274,3'
          Dst:             printf
        - Src:             'src/main.c:2288,3'
          Dst:             printf
        - Src:             'src/main.c:2294,3'
          Dst:             printf
        - Src:             'src/main.c:2300,3'
          Dst:             printf
        - Src:             'src/main.c:2306,3'
          Dst:             printf
        - Src:             'src/main.c:2312,3'
          Dst:             printf
        - Src:             'src/main.c:2316,3'
          Dst:             printf
        - Src:             'src/main.c:2322,3'
          Dst:             printf
        - Src:             'src/main.c:2330,3'
          Dst:             printf
        - Src:             'src/main.c:2334,3'
          Dst:             printf
        - Src:             'src/main.c:2340,3'
          Dst:             printf
        - Src:             'src/main.c:2346,3'
          Dst:             printf
        - Src:             'src/main.c:2347,3'
          Dst:             printf
        - Src:             'src/main.c:2348,3'
          Dst:             printf
        - Src:             'src/main.c:2349,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
        - Src:             'src/main.c:2359,3'
          Dst:             printf
        - Src:             'src/main.c:2361,3'
          Dst:             printf
        - Src:             'src/main.c:2362,3'
          Dst:             printf
        - Src:             'src/main.c:2363,3'
          Dst:             printf
        - Src:             'src/main.c:2364,3'
          Dst:             printf
        - Src:             'src/main.c:2365,3'
          Dst:             printf
        - Src:             'src/main.c:2366,3'
          Dst:             printf
        - Src:             'src/main.c:2367,3'
          Dst:             printf
        - Src:             'src/main.c:2368,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: 2446
      functionLinenumberEnd: 2865
      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:2525,5'
          Branch Sides:    []
        - Branch String:   'src/main.c:2843,3'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:2463,3'
          Dst:             tzset
        - Src:             'src/main.c:2468,3'
          Dst:             pr_fs_close_extra_fds
        - Src:             'src/main.c:2469,3'
          Dst:             pr_proctitle_init
        - Src:             'src/main.c:2472,3'
          Dst:             pr_random_init
        - Src:             'src/main.c:2477,19'
          Dst:             fileno
        - Src:             'src/main.c:2477,7'
          Dst:             getpeername
        - Src:             'src/main.c:2478,5'
          Dst:             log_stderr
        - Src:             'src/main.c:2482,3'
          Dst:             log_opensyslog
        - Src:             'src/main.c:2485,3'
          Dst:             init_pools
        - Src:             'src/main.c:2520,3'
          Dst:             getopt_long
        - Src:             'src/main.c:2529,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2530,9'
          Dst:             exit
        - Src:             'src/main.c:2533,7'
          Dst:             pr_define_add
        - Src:             'src/main.c:2537,7'
          Dst:             show_settings
        - Src:             'src/main.c:2538,7'
          Dst:             exit
        - Src:             'src/main.c:2558,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2559,9'
          Dst:             exit
        - Src:             'src/main.c:2561,28'
          Dst:             atoi
        - Src:             'src/main.c:2561,7'
          Dst:             pr_log_setdebuglevel
        - Src:             'src/main.c:2567,7'
          Dst:             pr_log_setdefaultlevel
        - Src:             'src/main.c:2572,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2574,9'
          Dst:             exit
        - Src:             'src/main.c:2580,25'
          Dst:             strdup
        - Src:             'src/main.c:2584,7'
          Dst:             modules_list2
        - Src:             'src/main.c:2585,7'
          Dst:             exit
        - Src:             'src/main.c:2590,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2591,9'
          Dst:             exit
        - Src:             'src/main.c:2594,11'
          Dst:             pr_netaddr_set_localaddr_str
        - Src:             'src/main.c:2597,20'
          Dst:             __errno_location
        - Src:             'src/main.c:2597,11'
          Dst:             strerror
        - Src:             'src/main.c:2595,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2598,9'
          Dst:             exit
        - Src:             'src/main.c:2604,7'
          Dst:             printf
        - Src:             'src/main.c:2605,7'
          Dst:             fflush
        - Src:             'src/main.c:2613,12'
          Dst:             atoi
        - Src:             'src/main.c:2613,33'
          Dst:             atoi
        - Src:             'src/main.c:2614,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2616,9'
          Dst:             exit
        - Src:             'src/main.c:2635,7'
          Dst:             show_usage
        - Src:             'src/main.c:2639,7'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'src/main.c:2643,7'
          Dst:             pr_netaddr_enable_ipv6
        - Src:             'src/main.c:2648,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2649,7'
          Dst:             show_usage
        - Src:             'src/main.c:2656,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2657,5'
          Dst:             exit
        - Src:             'src/main.c:2661,5'
          Dst:             printf
        - Src:             'src/main.c:2662,5'
          Dst:             exit
        - Src:             'src/main.c:2665,10'
          Dst:             getpid
        - Src:             'src/main.c:2668,3'
          Dst:             init_signals
        - Src:             'src/main.c:2669,3'
          Dst:             init_pools
        - Src:             'src/main.c:2670,3'
          Dst:             init_privs
        - Src:             'src/main.c:2671,3'
          Dst:             init_log
        - Src:             'src/main.c:2672,3'
          Dst:             init_regexp
        - Src:             'src/main.c:2673,3'
          Dst:             init_inet
        - Src:             'src/main.c:2674,3'
          Dst:             init_netio
        - Src:             'src/main.c:2675,3'
          Dst:             init_netaddr
        - Src:             'src/main.c:2676,3'
          Dst:             init_fs
        - Src:             'src/main.c:2677,3'
          Dst:             init_class
        - Src:             'src/main.c:2678,3'
          Dst:             free_bindings
        - Src:             'src/main.c:2679,3'
          Dst:             init_config
        - Src:             'src/main.c:2680,3'
          Dst:             init_dirtree
        - Src:             'src/main.c:2681,3'
          Dst:             init_stash
        - Src:             'src/main.c:2682,3'
          Dst:             init_json
        - Src:             'src/main.c:2685,3'
          Dst:             init_ctrls
        - Src:             'src/main.c:2688,3'
          Dst:             var_init
        - Src:             'src/main.c:2719,3'
          Dst:             modules_init
        - Src:             'src/main.c:2725,7'
          Dst:             pr_fs_valid_path
        - Src:             'src/main.c:2726,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2727,5'
          Dst:             exit
        - Src:             'src/main.c:2730,3'
          Dst:             pr_parser_prepare
        - Src:             'src/main.c:2732,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:2734,7'
          Dst:             pr_parser_parse_file
        - Src:             'src/main.c:2738,9'
          Dst:             __errno_location
        - Src:             'src/main.c:2741,18'
          Dst:             __errno_location
        - Src:             'src/main.c:2741,9'
          Dst:             strerror
        - Src:             'src/main.c:2739,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2744,5'
          Dst:             exit
        - Src:             'src/main.c:2747,7'
          Dst:             pr_parser_cleanup
        - Src:             'src/main.c:2748,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2751,5'
          Dst:             exit
        - Src:             'src/main.c:2754,7'
          Dst:             fixup_servers
        - Src:             'src/main.c:2755,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2757,5'
          Dst:             exit
        - Src:             'src/main.c:2760,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:2763,5'
          Dst:             printf
        - Src:             'src/main.c:2764,5'
          Dst:             printf
        - Src:             'src/main.c:2765,5'
          Dst:             printf
        - Src:             'src/main.c:2767,5'
          Dst:             modules_list2
        - Src:             'src/main.c:2770,7'
          Dst:             printf
        - Src:             'src/main.c:2771,7'
          Dst:             list_directives
        - Src:             'src/main.c:2774,5'
          Dst:             exit
        - Src:             'src/main.c:2779,5'
          Dst:             printf
        - Src:             'src/main.c:2780,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:2785,28'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2786,28'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2791,19'
          Dst:             make_array
        - Src:             'src/main.c:2792,17'
          Dst:             push_array
        - Src:             'src/main.c:2794,9'
          Dst:             set_groups
        - Src:             'src/main.c:2795,11'
          Dst:             __errno_location
        - Src:             'src/main.c:2797,20'
          Dst:             __errno_location
        - Src:             'src/main.c:2797,11'
          Dst:             strerror
        - Src:             'src/main.c:2796,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2805,3'
          Dst:             endpwent
        - Src:             'src/main.c:2806,3'
          Dst:             endgrent
        - Src:             'src/main.c:2808,16'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2810,5'
          Dst:             umask
        - Src:             'src/main.c:2813,5'
          Dst:             umask
        - Src:             'src/main.c:2821,3'
          Dst:             pr_privs_setup
        - Src:             'src/main.c:2828,7'
          Dst:             geteuid
        - Src:             'src/main.c:2830,7'
          Dst:             pr_uid2str
        - Src:             'src/main.c:2831,34'
          Dst:             geteuid
        - Src:             'src/main.c:2831,7'
          Dst:             pr_uid2str
        - Src:             'src/main.c:2829,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2832,5'
          Dst:             exit
        - Src:             'src/main.c:2835,7'
          Dst:             getegid
        - Src:             'src/main.c:2837,7'
          Dst:             pr_gid2str
        - Src:             'src/main.c:2838,34'
          Dst:             getegid
        - Src:             'src/main.c:2838,7'
          Dst:             pr_gid2str
        - Src:             'src/main.c:2836,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2839,5'
          Dst:             exit
        - Src:             'src/main.c:2845,7'
          Dst:             standalone_main
        - Src:             'src/main.c:2853,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: 987
      functionLinenumberEnd: 1108
      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:996,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1000,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1003,3'
          Dst:             gettimeofday
        - Src:             'src/main.c:1009,11'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1011,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1017,11'
          Dst:             select
        - Src:             'src/main.c:1021,19'
          Dst:             child_get
        - Src:             'src/main.c:1024,20'
          Dst:             close
        - Src:             'src/main.c:1021,45'
          Dst:             child_get
        - Src:             'src/main.c:1032,15'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1036,3'
          Dst:             free_bindings
        - Src:             'src/main.c:1039,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1041,3'
          Dst:             init_log
        - Src:             'src/main.c:1042,3'
          Dst:             init_netaddr
        - Src:             'src/main.c:1043,3'
          Dst:             init_class
        - Src:             'src/main.c:1044,3'
          Dst:             init_config
        - Src:             'src/main.c:1045,3'
          Dst:             init_dirtree
        - Src:             'src/main.c:1051,3'
          Dst:             pr_netaddr_clear_cache
        - Src:             'src/main.c:1052,3'
          Dst:             pr_parser_prepare
        - Src:             'src/main.c:1053,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1055,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1056,9'
          Dst:             pr_parser_parse_file
        - Src:             'src/main.c:1057,12'
          Dst:             __errno_location
        - Src:             'src/main.c:1058,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1067,9'
          Dst:             strerror
        - Src:             'src/main.c:1065,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1070,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1073,7'
          Dst:             pr_parser_cleanup
        - Src:             'src/main.c:1074,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1077,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1087,3'
          Dst:             endpwent
        - Src:             'src/main.c:1088,3'
          Dst:             endgrent
        - Src:             'src/main.c:1090,7'
          Dst:             fixup_servers
        - Src:             'src/main.c:1091,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1093,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1096,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1101,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1103,3'
          Dst:             gettimeofday
        - Src:             'src/main.c:1107,3'
          Dst:             pr_trace_msg
    - functionName:    pr_cmd_dispatch
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 802
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:802,10'
          Dst:             pr_cmd_dispatch_phase
    - functionName:    pr_cmd_dispatch_phase
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          502
      EdgeCount:       98
      CyclomaticComplexity: 23
      functionsReached:
        - __ctype_b_loc
        - __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:744,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:626,5'
          Dst:             __errno_location
        - Src:             'src/main.c:636,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:640,5'
          Dst:             pr_response_clear
        - Src:             'src/main.c:641,5'
          Dst:             pr_response_clear
        - Src:             'src/main.c:653,15'
          Dst:             pr_response_get_pool
        - Src:             'src/main.c:656,3'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:659,9'
          Dst:             __ctype_b_loc
        - Src:             'src/main.c:660,13'
          Dst:             toupper
        - Src:             'src/main.c:665,22'
          Dst:             get_command_class
        - Src:             'src/main.c:669,19'
          Dst:             pr_cmd_get_id
        - Src:             'src/main.c:672,3'
          Dst:             set_cmd_start_ms
        - Src:             'src/main.c:676,15'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:679,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:685,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:686,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:688,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:689,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:691,16'
          Dst:             __errno_location
        - Src:             'src/main.c:692,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:694,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:697,7'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:699,7'
          Dst:             __errno_location
        - Src:             'src/main.c:703,15'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:705,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:709,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:711,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:714,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:715,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:717,16'
          Dst:             __errno_location
        - Src:             'src/main.c:718,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:720,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:722,7'
          Dst:             __errno_location
        - Src:             'src/main.c:727,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:729,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:732,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:733,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:735,16'
          Dst:             __errno_location
        - Src:             'src/main.c:736,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:738,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:740,7'
          Dst:             __errno_location
        - Src:             'src/main.c:748,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:750,21'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:751,20'
          Dst:             __errno_location
        - Src:             'src/main.c:756,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:758,21'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:764,16'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:765,16'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:770,9'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:772,9'
          Dst:             __errno_location
        - Src:             'src/main.c:777,16'
          Dst:             __errno_location
        - Src:             'src/main.c:780,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:782,9'
          Dst:             pr_response_flush
        - Src:             'src/main.c:785,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:787,9'
          Dst:             pr_response_flush
        - Src:             'src/main.c:790,7'
          Dst:             __errno_location
        - Src:             'src/main.c:795,3'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:797,3'
          Dst:             __errno_location
    - 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:    72
      BranchProfiles:  []
      Callsites:       []
    - 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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_command_class
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 228
      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:219,7'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:221,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:222,9'
          Dst:             pr_stash_get_symbol2
    - functionName:    set_cmd_start_ms
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 618
      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:605,16'
          Dst:             pr_table_get
        - Src:             'src/main.c:610,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'src/main.c:614,7'
          Dst:             palloc
        - Src:             'src/main.c:617,10'
          Dst:             pr_table_add
    - functionName:    dispatch_cmd
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 454
      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:261,7'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:266,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:275,22'
          Dst:             pstrdup
        - Src:             'src/main.c:281,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:284,9'
          Dst:             __errno_location
        - Src:             'src/main.c:289,25'
          Dst:             make_sub_pool
        - Src:             'src/main.c:290,9'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:293,19'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'src/main.c:306,29'
          Dst:             memchr
        - Src:             'src/main.c:309,29'
          Dst:             strchr
        - Src:             'src/main.c:312,11'
          Dst:             pr_scoreboard_entry_update
        - Src:             'src/main.c:314,11'
          Dst:             pr_scoreboard_entry_update
        - Src:             'src/main.c:317,11'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:323,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:322,11'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:332,9'
          Dst:             pr_log_debug
        - Src:             'src/main.c:342,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:361,11'
          Dst:             strcmp
        - Src:             'src/main.c:362,9'
          Dst:             kludge_disable_umask
        - Src:             'src/main.c:365,12'
          Dst:             pr_module_call
        - Src:             'src/main.c:366,7'
          Dst:             kludge_enable_umask
        - Src:             'src/main.c:372,18'
          Dst:             __errno_location
        - Src:             'src/main.c:379,13'
          Dst:             pr_log_pri
        - Src:             'src/main.c:398,13'
          Dst:             pr_response_add_err
        - Src:             'src/main.c:401,13'
          Dst:             pr_response_send_raw
        - Src:             'src/main.c:405,9'
          Dst:             __errno_location
        - Src:             'src/main.c:411,9'
          Dst:             pr_session_set_idle
        - Src:             'src/main.c:414,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:419,11'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:433,9'
          Dst:             strchr
        - Src:             'src/main.c:439,16'
          Dst:             pstrdup
        - Src:             'src/main.c:447,5'
          Dst:             pr_event_generate
        - Src:             'src/main.c:449,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: 806
      functionLinenumberEnd: 927
      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:818,7'
          Dst:             __ctype_b_loc
        - Src:             'src/main.c:819,5'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:821,5'
          Dst:             __errno_location
        - Src:             'src/main.c:842,9'
          Dst:             pr_str_get_word
        - Src:             'src/main.c:845,5'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:846,5'
          Dst:             __errno_location
        - Src:             'src/main.c:855,13'
          Dst:             make_sub_pool
        - Src:             'src/main.c:856,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:857,9'
          Dst:             pcalloc
        - Src:             'src/main.c:863,10'
          Dst:             make_array
        - Src:             'src/main.c:865,35'
          Dst:             pstrdup
        - Src:             'src/main.c:865,15'
          Dst:             push_array
        - Src:             'src/main.c:878,22'
          Dst:             strlen
        - Src:             'src/main.c:879,9'
          Dst:             pcalloc
        - Src:             'src/main.c:883,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:902,15'
          Dst:             pstrdup
        - Src:             'src/main.c:911,17'
          Dst:             pr_str_get_word
        - Src:             'src/main.c:912,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:913,37'
          Dst:             pstrdup
        - Src:             'src/main.c:913,17'
          Dst:             push_array
        - Src:             'src/main.c:917,15'
          Dst:             push_array
        - Src:             'src/main.c:919,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:924,16'
          Dst:             pr_table_nalloc
    - functionName:    get_max_cmd_sz
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 473
      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:463,11'
          Dst:             get_param_ptr
        - Src:             'src/main.c:468,5'
          Dst:             pr_log_debug
    - functionName:    pr_cmd_read
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 595
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:484,5'
          Dst:             __errno_location
        - Src:             'src/main.c:489,17'
          Dst:             get_max_cmd_sz
        - Src:             'src/main.c:493,15'
          Dst:             pcalloc
        - Src:             'src/main.c:497,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:501,18'
          Dst:             pr_netio_telnet_gets2
        - Src:             'src/main.c:504,11'
          Dst:             __errno_location
        - Src:             'src/main.c:509,9'
          Dst:             pr_timer_usleep
        - Src:             'src/main.c:519,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:533,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:566,9'
          Dst:             strncasecmp
        - Src:             'src/main.c:570,11'
          Dst:             make_ftp_cmd
        - Src:             'src/main.c:574,11'
          Dst:             pr_cmd_is_http
        - Src:             'src/main.c:578,18'
          Dst:             pr_cmd_is_ssh2
        - Src:             'src/main.c:582,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:    37
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shutdown_end_session
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 212
      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:154,7'
          Dst:             check_shutmsg
        - Src:             'src/main.c:160,36'
          Dst:             get_param_ptr
        - Src:             'src/main.c:164,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:167,9'
          Dst:             find_config
        - Src:             'src/main.c:176,25'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:180,5'
          Dst:             time
        - Src:             'src/main.c:182,14'
          Dst:             pr_table_get
        - Src:             'src/main.c:189,37'
          Dst:             pr_strtime3
        - Src:             'src/main.c:189,26'
          Dst:             pstrdup
        - 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:196,23'
          Dst:             pr_strtime3
        - Src:             'src/main.c:196,12'
          Dst:             pstrdup
        - Src:             'src/main.c:188,11'
          Dst:             sreplace
        - Src:             'src/main.c:201,5'
          Dst:             pr_response_send_async
        - Src:             'src/main.c:203,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:204,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:207,7'
          Dst:             signal
        - Src:             'src/main.c:207,7'
          Dst:             pr_signals_handle_disconnect
        - Src:             'src/main.c:210,16'
          Dst:             __errno_location
        - Src:             'src/main.c:210,7'
          Dst:             strerror
        - Src:             'src/main.c:208,5'
          Dst:             pr_log_pri
    - functionName:    session_exit
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 149
      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:133,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:137,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:140,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:141,5'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:143,7'
          Dst:             pr_pidfile_remove
        - Src:             'src/main.c:145,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:148,3'
          Dst:             pr_session_end
    - functionName:    cmd_loop
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 983
      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:935,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:937,11'
          Dst:             pr_cmd_read
        - Src:             'src/main.c:946,7'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:953,9'
          Dst:             pr_data_get_timeout
        - Src:             'src/main.c:954,7'
          Dst:             pr_timer_reset
        - Src:             'src/main.c:963,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:966,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:967,9'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:971,7'
          Dst:             pr_cmd_dispatch
        - Src:             'src/main.c:972,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:978,7'
          Dst:             pr_event_generate
        - Src:             'src/main.c:979,7'
          Dst:             pr_response_send
        - Src:             'src/main.c:983,5'
          Dst:             pr_inet_clear
    - functionName:    pr_cmd_set_handler
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 128
      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: 117
      functionLinenumberEnd: 119
      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: 2030
      functionLinenumberEnd: 2074
      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:2034,3'
          Dst:             setprotoent
        - Src:             'inet.c:2046,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2053,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2059,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2065,3'
          Dst:             endprotoent
        - Src:             'inet.c:2069,5'
          Dst:             destroy_pool
        - Src:             'inet.c:2072,15'
          Dst:             make_sub_pool
        - Src:             'inet.c:2073,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: 2008
      functionLinenumberEnd: 2028
      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:2015,5'
          Dst:             __errno_location
        - Src:             'inet.c:2019,7'
          Dst:             make_sub_pool
        - Src:             'inet.c:2020,8'
          Dst:             pcalloc
        - Src:             'inet.c:2024,3'
          Dst:             pr_event_generate
        - Src:             'inet.c:2025,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_openrw
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 2005
      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:1871,9'
          Dst:             pr_inet_copy_conn
        - Src:             'inet.c:1873,18'
          Dst:             __errno_location
        - Src:             'inet.c:1876,39'
          Dst:             strerror
        - Src:             'inet.c:1875,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1878,5'
          Dst:             __errno_location
        - Src:             'inet.c:1889,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1890,7'
          Dst:             __errno_location
        - Src:             'inet.c:1891,18'
          Dst:             __errno_location
        - Src:             'inet.c:1894,61'
          Dst:             strerror
        - Src:             'inet.c:1893,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1896,5'
          Dst:             __errno_location
        - Src:             'inet.c:1902,26'
          Dst:             pr_netaddr_dup
        - Src:             'inet.c:1908,24'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'inet.c:1912,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1914,20'
          Dst:             __errno_location
        - Src:             'inet.c:1921,52'
          Dst:             strerror
        - Src:             'inet.c:1920,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1923,7'
          Dst:             __errno_location
        - Src:             'inet.c:1935,7'
          Dst:             dup2
        - Src:             'inet.c:1944,13'
          Dst:             dup
        - Src:             'inet.c:1951,9'
          Dst:             fflush
        - Src:             'inet.c:1954,7'
          Dst:             dup2
        - Src:             'inet.c:1963,13'
          Dst:             dup
        - Src:             'inet.c:1971,12'
          Dst:             close
        - Src:             'inet.c:1977,17'
          Dst:             pr_netio_open
        - Src:             'inet.c:1978,18'
          Dst:             pr_netio_open
        - Src:             'inet.c:1981,3'
          Dst:             pr_inet_set_socket_opts
        - Src:             'inet.c:1982,10'
          Dst:             pr_inet_set_block
    - functionName:    pr_inet_copy_conn
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 190
      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:138,5'
          Dst:             __errno_location
        - Src:             'inet.c:142,14'
          Dst:             make_sub_pool
        - Src:             'inet.c:143,3'
          Dst:             pr_pool_tag
        - Src:             'inet.c:145,20'
          Dst:             pcalloc
        - Src:             'inet.c:154,18'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:157,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:156,9'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:158,7'
          Dst:             destroy_pool
        - Src:             'inet.c:162,41'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:162,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:169,19'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:172,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:171,9'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:173,7'
          Dst:             destroy_pool
        - Src:             'inet.c:178,7'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:177,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:183,24'
          Dst:             pstrdup
        - Src:             'inet.c:188,3'
          Dst:             register_cleanup2
        - Src:             'inet.c:188,3'
          Dst:             conn_cleanup_cb
    - functionName:    pr_inet_get_conn_info
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1744
      functionLinenumberEnd: 1849
      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:1749,5'
          Dst:             __errno_location
        - Src:             'inet.c:1754,5'
          Dst:             __errno_location
        - Src:             'inet.c:1759,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:1762,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:1763,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1766,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1771,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1773,23'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1773,7'
          Dst:             getsockname
        - Src:             'inet.c:1780,20'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:1788,39'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1788,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1789,41'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1789,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:1790,27'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:1790,21'
          Dst:             ntohs
        - Src:             'inet.c:1797,18'
          Dst:             __errno_location
        - Src:             'inet.c:1800,48'
          Dst:             strerror
        - Src:             'inet.c:1799,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1802,5'
          Dst:             __errno_location
        - Src:             'inet.c:1808,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:1809,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1812,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1817,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1819,23'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1819,7'
          Dst:             getpeername
        - Src:             'inet.c:1821,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'inet.c:1822,24'
          Dst:             pr_netaddr_v6tov4
        - Src:             'inet.c:1827,21'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:1830,9'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1829,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1831,44'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1831,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:1836,28'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:1836,22'
          Dst:             ntohs
        - Src:             'inet.c:1839,18'
          Dst:             __errno_location
        - Src:             'inet.c:1842,48'
          Dst:             strerror
        - Src:             'inet.c:1841,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1844,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: 1166
      functionLinenumberEnd: 1167
      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:1167,10'
          Dst:             pr_inet_set_socket_opts2
    - functionName:    pr_inet_set_block
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1355
      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:1316,5'
          Dst:             __errno_location
        - Src:             'inet.c:1320,3'
          Dst:             __errno_location
        - Src:             'inet.c:1324,13'
          Dst:             fcntl
        - Src:             'inet.c:1326,13'
          Dst:             fcntl
        - Src:             'inet.c:1334,15'
          Dst:             fcntl
        - Src:             'inet.c:1336,15'
          Dst:             fcntl
        - Src:             'inet.c:1344,15'
          Dst:             fcntl
        - Src:             'inet.c:1346,15'
          Dst:             fcntl
    - functionName:    pr_inet_set_socket_opts2
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1163
      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:1068,5'
          Dst:             __errno_location
        - Src:             'inet.c:1083,12'
          Dst:             pr_inet_set_proto_keepalive
        - Src:             'inet.c:1087,11'
          Dst:             getsockopt
        - Src:             'inet.c:1090,15'
          Dst:             setsockopt
        - Src:             'inet.c:1093,24'
          Dst:             __errno_location
        - Src:             'inet.c:1093,15'
          Dst:             strerror
        - Src:             'inet.c:1092,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:1096,13'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1101,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1110,20'
          Dst:             __errno_location
        - Src:             'inet.c:1110,11'
          Dst:             strerror
        - Src:             'inet.c:1108,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1118,11'
          Dst:             getsockopt
        - Src:             'inet.c:1121,15'
          Dst:             setsockopt
        - Src:             'inet.c:1124,24'
          Dst:             __errno_location
        - Src:             'inet.c:1124,15'
          Dst:             strerror
        - Src:             'inet.c:1123,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:1127,13'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1132,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1141,20'
          Dst:             __errno_location
        - Src:             'inet.c:1141,11'
          Dst:             strerror
        - Src:             'inet.c:1139,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1155,11'
          Dst:             pr_inet_set_reuse_port
        - Src:             'inet.c:1156,9'
          Dst:             pr_trace_msg
    - functionName:    pr_inet_set_proto_keepalive
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 1061
      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:958,5'
          Dst:             __errno_location
        - Src:             'inet.c:963,5'
          Dst:             __errno_location
        - Src:             'inet.c:969,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:971,7'
          Dst:             setsockopt
        - Src:             'inet.c:974,16'
          Dst:             __errno_location
        - Src:             'inet.c:974,7'
          Dst:             strerror
        - Src:             'inet.c:973,5'
          Dst:             pr_log_pri
        - Src:             'inet.c:985,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1006,9'
          Dst:             setsockopt
        - Src:             'inet.c:1010,17'
          Dst:             __errno_location
        - Src:             'inet.c:1010,8'
          Dst:             strerror
        - Src:             'inet.c:1008,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1013,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1022,9'
          Dst:             setsockopt
        - Src:             'inet.c:1026,18'
          Dst:             __errno_location
        - Src:             'inet.c:1026,9'
          Dst:             strerror
        - Src:             'inet.c:1024,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1029,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1042,9'
          Dst:             setsockopt
        - Src:             'inet.c:1046,18'
          Dst:             __errno_location
        - Src:             'inet.c:1046,9'
          Dst:             strerror
        - Src:             'inet.c:1044,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1049,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: 1170
      functionLinenumberEnd: 1198
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_log_pri
        - setsockopt
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1176,5'
          Dst:             __errno_location
        - Src:             'inet.c:1181,5'
          Dst:             __errno_location
        - Src:             'inet.c:1186,9'
          Dst:             setsockopt
        - Src:             'inet.c:1191,16'
          Dst:             __errno_location
        - Src:             'inet.c:1191,7'
          Dst:             strerror
        - Src:             'inet.c:1189,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: 92
      functionLinenumberEnd: 127
      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:100,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:105,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:114,12'
          Dst:             close
        - Src:             'inet.c:119,12'
          Dst:             close
        - Src:             'inet.c:124,12'
          Dst:             close
    - functionName:    pr_inet_accept
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1659
      functionLinenumberEnd: 1742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          209
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - accept
        - close
        - find_config
        - getpeername
        - pr_inet_allowforeignaddress
        - pr_inet_openrw
        - pr_log_pri
        - pr_netaddr_clear
        - 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:1668,5'
          Dst:             __errno_location
        - Src:             'inet.c:1673,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:1675,30'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:1675,3'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1676,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1678,31'
          Dst:             find_config
        - Src:             'inet.c:1690,5'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1692,31'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1692,10'
          Dst:             accept
        - Src:             'inet.c:1694,11'
          Dst:             __errno_location
        - Src:             'inet.c:1699,19'
          Dst:             __errno_location
        - Src:             'inet.c:1703,25'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1703,9'
          Dst:             getpeername
        - Src:             'inet.c:1704,20'
          Dst:             __errno_location
        - Src:             'inet.c:1710,53'
          Dst:             strerror
        - Src:             'inet.c:1709,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1711,14'
          Dst:             close
        - Src:             'inet.c:1719,11'
          Dst:             pr_inet_allowforeignaddress
        - Src:             'inet.c:1724,25'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1725,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1722,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1727,14'
          Dst:             close
        - Src:             'inet.c:1735,12'
          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_allowforeignaddress
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1588
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          145
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_class_find
        - pr_class_satisfied
        - pr_log_debug
        - pr_netaddr_cmp
        - pr_netaddr_get_ipstr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'inet.c:1549,5'
          Branch Sides:    []
      Callsites:
        - Src:             'inet.c:1541,5'
          Dst:             __errno_location
        - Src:             'inet.c:1563,15'
          Dst:             pr_class_find
        - Src:             'inet.c:1565,15'
          Dst:             pr_class_satisfied
        - Src:             'inet.c:1570,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1569,13'
          Dst:             pr_log_debug
        - Src:             'inet.c:1574,11'
          Dst:             pr_log_debug
        - Src:             'inet.c:1582,9'
          Dst:             pr_netaddr_cmp
    - functionName:    pr_inet_accept_nowait
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1653
      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:1600,5'
          Dst:             __errno_location
        - Src:             'inet.c:1605,9'
          Dst:             pr_inet_set_nonblock
        - Src:             'inet.c:1606,11'
          Dst:             __errno_location
        - Src:             'inet.c:1608,63'
          Dst:             __errno_location
        - Src:             'inet.c:1608,54'
          Dst:             strerror
        - Src:             'inet.c:1607,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1620,5'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1621,10'
          Dst:             accept
        - Src:             'inet.c:1624,11'
          Dst:             __errno_location
        - Src:             'inet.c:1628,11'
          Dst:             __errno_location
        - Src:             'inet.c:1630,21'
          Dst:             __errno_location
        - Src:             'inet.c:1645,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1646,9'
          Dst:             __errno_location
        - Src:             'inet.c:1648,58'
          Dst:             __errno_location
        - Src:             'inet.c:1648,49'
          Dst:             strerror
        - Src:             'inet.c:1647,7'
          Dst:             pr_trace_msg
    - functionName:    pr_inet_set_nonblock
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1307
      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:1268,5'
          Dst:             __errno_location
        - Src:             'inet.c:1272,3'
          Dst:             __errno_location
        - Src:             'inet.c:1276,13'
          Dst:             fcntl
        - Src:             'inet.c:1278,13'
          Dst:             fcntl
        - Src:             'inet.c:1286,15'
          Dst:             fcntl
        - Src:             'inet.c:1288,15'
          Dst:             fcntl
        - Src:             'inet.c:1296,15'
          Dst:             fcntl
        - Src:             'inet.c:1298,15'
          Dst:             fcntl
    - functionName:    pr_inet_connect_nowait
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1527
      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:1477,5'
          Dst:             __errno_location
        - Src:             'inet.c:1482,7'
          Dst:             pr_inet_set_nonblock
        - Src:             'inet.c:1484,17'
          Dst:             __errno_location
        - Src:             'inet.c:1493,35'
          Dst:             htons
        - Src:             'inet.c:1493,3'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:1495,29'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1496,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1495,7'
          Dst:             connect
        - Src:             'inet.c:1497,9'
          Dst:             __errno_location
        - Src:             'inet.c:1498,9'
          Dst:             __errno_location
        - Src:             'inet.c:1500,19'
          Dst:             __errno_location
        - Src:             'inet.c:1502,14'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1504,7'
          Dst:             __errno_location
        - Src:             'inet.c:1513,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1514,17'
          Dst:             __errno_location
        - Src:             'inet.c:1516,12'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1517,5'
          Dst:             __errno_location
        - Src:             'inet.c:1521,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1522,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: 1414
      functionLinenumberEnd: 1465
      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:1420,5'
          Dst:             __errno_location
        - Src:             'inet.c:1425,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1427,17'
          Dst:             __errno_location
        - Src:             'inet.c:1436,35'
          Dst:             htons
        - Src:             'inet.c:1436,3'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:1439,33'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1440,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1439,11'
          Dst:             connect
        - Src:             'inet.c:1442,9'
          Dst:             __errno_location
        - Src:             'inet.c:1443,7'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1452,17'
          Dst:             __errno_location
        - Src:             'inet.c:1458,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1460,17'
          Dst:             __errno_location
    - functionName:    pr_inet_resetlisten
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1399
      functionLinenumberEnd: 1412
      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:1401,5'
          Dst:             __errno_location
        - Src:             'inet.c:1406,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1407,17'
          Dst:             __errno_location
    - functionName:    pr_inet_listen
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1358
      functionLinenumberEnd: 1394
      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:1360,5'
          Dst:             __errno_location
        - Src:             'inet.c:1365,5'
          Dst:             __errno_location
        - Src:             'inet.c:1370,9'
          Dst:             listen
        - Src:             'inet.c:1371,20'
          Dst:             __errno_location
        - Src:             'inet.c:1374,9'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1379,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1379,61'
          Dst:             strerror
        - Src:             'inet.c:1378,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1382,9'
          Dst:             pr_session_disconnect
        - Src:             'inet.c:1385,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: 1213
      functionLinenumberEnd: 1224
      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:1217,39'
          Dst:             getpid
        - Src:             'inet.c:1218,9'
          Dst:             fcntl
        - Src:             'inet.c:1221,22'
          Dst:             __errno_location
        - Src:             'inet.c:1221,13'
          Dst:             strerror
        - Src:             'inet.c:1219,7'
          Dst:             pr_trace_msg
    - functionName:    set_oobinline
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1209
      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:1204,9'
          Dst:             setsockopt
        - Src:             'inet.c:1206,18'
          Dst:             __errno_location
        - Src:             'inet.c:1206,9'
          Dst:             strerror
        - Src:             'inet.c:1205,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_set_async
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1257
      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:1232,5'
          Dst:             __errno_location
        - 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:1245,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1247,3'
          Dst:             set_oobinline
        - Src:             'inet.c:1251,3'
          Dst:             set_socket_owner
        - Src:             'inet.c:1252,3'
          Dst:             set_socket_owner
        - Src:             'inet.c:1253,3'
          Dst:             set_socket_owner
    - functionName:    pr_inet_set_proto_opts
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 949
      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:854,5'
          Dst:             __errno_location
        - Src:             'inet.c:860,9'
          Dst:             setsockopt
        - Src:             'inet.c:862,11'
          Dst:             __errno_location
        - Src:             'inet.c:865,20'
          Dst:             __errno_location
        - Src:             'inet.c:865,11'
          Dst:             strerror
        - Src:             'inet.c:863,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:871,9'
          Dst:             setsockopt
        - Src:             'inet.c:873,11'
          Dst:             __errno_location
        - Src:             'inet.c:876,20'
          Dst:             __errno_location
        - Src:             'inet.c:876,11'
          Dst:             strerror
        - Src:             'inet.c:874,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:882,9'
          Dst:             setsockopt
        - Src:             'inet.c:884,11'
          Dst:             __errno_location
        - Src:             'inet.c:887,43'
          Dst:             __errno_location
        - Src:             'inet.c:887,34'
          Dst:             strerror
        - Src:             'inet.c:885,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:896,9'
          Dst:             setsockopt
        - Src:             'inet.c:899,23'
          Dst:             __errno_location
        - Src:             'inet.c:899,14'
          Dst:             strerror
        - Src:             'inet.c:898,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:906,7'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:908,11'
          Dst:             setsockopt
        - Src:             'inet.c:911,20'
          Dst:             __errno_location
        - Src:             'inet.c:911,11'
          Dst:             strerror
        - Src:             'inet.c:910,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:918,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:920,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:925,15'
          Dst:             setsockopt
        - Src:             'inet.c:928,16'
          Dst:             __errno_location
        - Src:             'inet.c:930,16'
          Dst:             __errno_location
        - Src:             'inet.c:934,22'
          Dst:             __errno_location
        - Src:             'inet.c:934,13'
          Dst:             strerror
        - Src:             'inet.c:933,11'
          Dst:             pr_log_pri
        - Src:             'inet.c:942,9'
          Dst:             pr_inet_set_proto_cork
        - Src:             'inet.c:944,18'
          Dst:             __errno_location
        - Src:             'inet.c:944,9'
          Dst:             strerror
        - Src:             'inet.c:943,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_set_proto_cork
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 785
      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:779,9'
          Dst:             setsockopt
    - functionName:    pr_inet_set_proto_nodelay
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 826
      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:799,5'
          Dst:             __errno_location
        - Src:             'inet.c:804,11'
          Dst:             setsockopt
        - Src:             'inet.c:807,9'
          Dst:             __errno_location
        - Src:             'inet.c:809,37'
          Dst:             __errno_location
        - Src:             'inet.c:809,28'
          Dst:             strerror
        - Src:             'inet.c:808,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:814,11'
          Dst:             setsockopt
        - Src:             'inet.c:817,9'
          Dst:             __errno_location
        - Src:             'inet.c:818,9'
          Dst:             __errno_location
        - Src:             'inet.c:820,37'
          Dst:             __errno_location
        - Src:             'inet.c:820,28'
          Dst:             strerror
        - Src:             'inet.c:819,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_lingering_abort
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 756
      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:735,10'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:738,5'
          Dst:             pr_netio_lingering_abort
        - Src:             'inet.c:749,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:755,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_lingering_close
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 727
      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:710,10'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:713,5'
          Dst:             pr_netio_lingering_close
        - Src:             'inet.c:720,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:726,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_close
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 702
      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:700,5'
          Dst:             destroy_pool
    - functionName:    pr_inet_create_conn_portrange
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 685
      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:624,5'
          Dst:             __errno_location
        - Src:             'inet.c:629,5'
          Dst:             __errno_location
        - Src:             'inet.c:635,17'
          Dst:             make_sub_pool
        - Src:             'inet.c:636,5'
          Dst:             pr_pool_tag
        - Src:             'inet.c:640,19'
          Dst:             pcalloc
        - Src:             'inet.c:641,19'
          Dst:             pcalloc
        - Src:             'inet.c:650,7'
          Dst:             pr_signals_handle
        - Src:             'inet.c:657,35'
          Dst:             rand
        - Src:             'inet.c:672,11'
          Dst:             init_conn
        - Src:             'inet.c:673,16'
          Dst:             __errno_location
        - Src:             'inet.c:677,31'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:678,21'
          Dst:             strerror
        - Src:             'inet.c:676,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:683,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: 196
      functionLinenumberEnd: 586
      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:204,5'
          Dst:             __errno_location
        - Src:             'inet.c:209,17'
          Dst:             make_sub_pool
        - Src:             'inet.c:210,5'
          Dst:             pr_pool_tag
        - Src:             'inet.c:214,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:216,14'
          Dst:             make_sub_pool
        - Src:             'inet.c:217,3'
          Dst:             pr_pool_tag
        - Src:             'inet.c:219,18'
          Dst:             pcalloc
        - Src:             'inet.c:229,19'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:239,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:291,10'
          Dst:             socket
        - Src:             'inet.c:292,18'
          Dst:             __errno_location
        - Src:             'inet.c:324,11'
          Dst:             strerror
        - Src:             'inet.c:322,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:327,7'
          Dst:             destroy_pool
        - Src:             'inet.c:328,7'
          Dst:             __errno_location
        - Src:             'inet.c:333,9'
          Dst:             setsockopt
        - Src:             'inet.c:336,18'
          Dst:             __errno_location
        - Src:             'inet.c:336,9'
          Dst:             strerror
        - Src:             'inet.c:335,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:342,13'
          Dst:             pr_inet_set_reuse_port
        - Src:             'inet.c:347,18'
          Dst:             __errno_location
        - Src:             'inet.c:347,9'
          Dst:             strerror
        - Src:             'inet.c:344,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:350,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:362,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:364,13'
          Dst:             setsockopt
        - Src:             'inet.c:368,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:370,13'
          Dst:             setsockopt
        - Src:             'inet.c:375,72'
          Dst:             __errno_location
        - Src:             'inet.c:375,63'
          Dst:             strerror
        - Src:             'inet.c:374,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:380,9'
          Dst:             setsockopt
        - Src:             'inet.c:382,11'
          Dst:             __errno_location
        - Src:             'inet.c:384,20'
          Dst:             __errno_location
        - Src:             'inet.c:384,11'
          Dst:             strerror
        - Src:             'inet.c:383,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:390,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:393,36'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:393,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:396,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'inet.c:400,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:414,11'
          Dst:             getsockopt
        - Src:             'inet.c:418,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:421,17'
          Dst:             setsockopt
        - Src:             'inet.c:431,18'
          Dst:             __errno_location
        - Src:             'inet.c:435,24'
          Dst:             __errno_location
        - Src:             'inet.c:435,15'
          Dst:             strerror
        - Src:             'inet.c:434,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:442,20'
          Dst:             __errno_location
        - Src:             'inet.c:442,11'
          Dst:             strerror
        - Src:             'inet.c:440,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:447,30'
          Dst:             htons
        - Src:             'inet.c:447,5'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:451,7'
          Dst:             pr_signals_block
        - Src:             'inet.c:452,7'
          Dst:             pr_privs_root
        - Src:             'inet.c:455,9'
          Dst:             fcntl
        - Src:             'inet.c:457,22'
          Dst:             __errno_location
        - Src:             'inet.c:457,13'
          Dst:             strerror
        - Src:             'inet.c:456,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:469,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:467,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:470,22'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:471,9'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:470,13'
          Dst:             bind
        - Src:             'inet.c:472,20'
          Dst:             __errno_location
        - Src:             'inet.c:476,9'
          Dst:             pr_signals_handle
        - Src:             'inet.c:499,9'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:500,9'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:503,7'
          Dst:             pr_timer_sleep
        - Src:             'inet.c:507,9'
          Dst:             pr_signals_block
        - Src:             'inet.c:508,9'
          Dst:             pr_privs_root
        - Src:             'inet.c:515,9'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:516,9'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:520,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:520,42'
          Dst:             strerror
        - Src:             'inet.c:519,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:523,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:527,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:525,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:531,7'
          Dst:             destroy_pool
        - Src:             'inet.c:532,14'
          Dst:             close
        - Src:             'inet.c:534,7'
          Dst:             __errno_location
        - Src:             'inet.c:540,7'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:541,7'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:548,13'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:549,25'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:549,9'
          Dst:             getsockname
        - Src:             'inet.c:556,22'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:559,41'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:559,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:560,43'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:560,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:561,29'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:561,23'
          Dst:             ntohs
        - Src:             'inet.c:569,18'
          Dst:             __errno_location
        - Src:             'inet.c:569,9'
          Dst:             strerror
        - Src:             'inet.c:568,7'
          Dst:             pr_log_debug
        - Src:             'inet.c:574,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:575,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:580,3'
          Dst:             register_cleanup2
        - Src:             'inet.c:580,3'
          Dst:             conn_cleanup_cb
        - Src:             'inet.c:583,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:582,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: 601
      functionLinenumberEnd: 609
      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:609,10'
          Dst:             pr_inet_create_conn2
    - functionName:    pr_inet_create_conn2
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 597
      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:592,7'
          Dst:             init_conn
        - Src:             'inet.c:594,5'
          Dst:             __errno_location
    - functionName:    pr_inet_getservport
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 90
      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:79,5'
          Dst:             __errno_location
        - Src:             'inet.c:83,13'
          Dst:             getservbyname
        - Src:             'inet.c:89,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: 66
      functionLinenumberEnd: 69
      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: 55
      functionLinenumberEnd: 58
      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:56,3'
          Dst:             destroy_pool
    - functionName:    path_subst_uservar
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1461
      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:1342,5'
          Dst:             __errno_location
        - Src:             'support.c:1347,7'
          Dst:             strstr
        - Src:             'support.c:1356,14'
          Dst:             strlen
        - Src:             'support.c:1366,26'
          Dst:             strstr
        - Src:             'support.c:1372,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:1377,18'
          Dst:             strchr
        - Src:             'support.c:1384,18'
          Dst:             pstrdup
        - Src:             'support.c:1410,9'
          Dst:             strtol
        - Src:             'support.c:1413,7'
          Dst:             pr_trace_msg
        - Src:             'support.c:1426,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:1431,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:1447,19'
          Dst:             sreplace
        - Src:             'support.c:1448,28'
          Dst:             strstr
        - Src:             'support.c:1453,7'
          Dst:             strstr
        - Src:             'support.c:1454,16'
          Dst:             sreplace
    - functionName:    pr_snprintf
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1319
      functionLinenumberEnd: 1327
      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:1324,9'
          Dst:             pr_vsnprintfl
    - functionName:    pr_vsnprintfl
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1301
      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:1253,5'
          Dst:             __errno_location
        - Src:             'support.c:1261,9'
          Dst:             vsnprintf
        - Src:             'support.c:1262,12'
          Dst:             __errno_location
        - Src:             'support.c:1288,51'
          Dst:             strerror
        - Src:             'support.c:1286,7'
          Dst:             pr_log_pri
        - Src:             'support.c:1293,32'
          Dst:             strerror
        - Src:             'support.c:1291,7'
          Dst:             pr_log_pri
        - Src:             'support.c:1296,5'
          Dst:             pr_log_stacktrace
        - Src:             'support.c:1299,3'
          Dst:             __errno_location
    - functionName:    pr_vsnprintf
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1304
      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:1304,10'
          Dst:             pr_vsnprintfl
    - functionName:    pr_gettimeofday_millis
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1245
      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:1236,7'
          Dst:             gettimeofday
        - Src:             'support.c:1240,7'
          Dst:             pr_timeval2millis
    - functionName:    pr_timeval2millis
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1231
      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:1222,5'
          Dst:             __errno_location
    - functionName:    pr_snprintfl
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1316
      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:1313,9'
          Dst:             pr_vsnprintfl
    - functionName:    pr_strtime3
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1217
      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:1197,10'
          Dst:             pr_gmtime
        - Src:             'support.c:1200,10'
          Dst:             pr_localtime
        - Src:             'support.c:1207,3'
          Dst:             pr_snprintfl
        - Src:             'support.c:1213,12'
          Dst:             pstrdup
    - functionName:    pr_gmtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1084
      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:1054,5'
          Dst:             __errno_location
        - Src:             'support.c:1060,5'
          Dst:             __errno_location
        - Src:             'support.c:1064,26'
          Dst:             pcalloc
        - Src:             'support.c:1064,12'
          Dst:             gmtime_r
        - Src:             'support.c:1076,14'
          Dst:             pcalloc
    - functionName:    pr_localtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1160
      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:1121,5'
          Dst:             __errno_location
        - Src:             'support.c:1127,5'
          Dst:             __errno_location
        - Src:             'support.c:1131,29'
          Dst:             pcalloc
        - Src:             'support.c:1131,12'
          Dst:             localtime_r
        - Src:             'support.c:1143,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: 1183
      functionLinenumberEnd: 1184
      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:1184,10'
          Dst:             pr_strtime3
    - functionName:    pr_strtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1180
      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:1180,10'
          Dst:             pr_strtime2
    - functionName:    pr_timingsafe_bcmp
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_getopt_reset
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1021
      functionLinenumberEnd: 1048
      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:1045,7'
          Dst:             pr_env_get
        - Src:             'support.c:1046,5'
          Dst:             pr_env_set
    - functionName:    pr_memscrub
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1019
      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:1015,7'
          Dst:             memchr
    - functionName:    check_shutmsg
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 973
      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:882,5'
          Dst:             __errno_location
        - Src:             'support.c:886,8'
          Dst:             fopen
        - Src:             'support.c:891,13'
          Dst:             fileno
        - Src:             'support.c:891,7'
          Dst:             fstat
        - Src:             'support.c:893,7'
          Dst:             fclose
        - Src:             'support.c:894,7'
          Dst:             __errno_location
        - Src:             'support.c:899,8'
          Dst:             fgets
        - Src:             'support.c:901,32'
          Dst:             pr_str_strip_end
        - Src:             'support.c:904,5'
          Dst:             time
        - Src:             'support.c:905,10'
          Dst:             pr_localtime
        - Src:             'support.c:907,7'
          Dst:             fclose
        - Src:             'support.c:911,24'
          Dst:             safe_token
        - Src:             'support.c:911,19'
          Dst:             atoi
        - Src:             'support.c:912,23'
          Dst:             safe_token
        - Src:             'support.c:912,18'
          Dst:             atoi
        - Src:             'support.c:913,24'
          Dst:             safe_token
        - Src:             'support.c:913,19'
          Dst:             atoi
        - Src:             'support.c:914,24'
          Dst:             safe_token
        - Src:             'support.c:914,19'
          Dst:             atoi
        - Src:             'support.c:915,23'
          Dst:             safe_token
        - Src:             'support.c:915,18'
          Dst:             atoi
        - Src:             'support.c:916,23'
          Dst:             safe_token
        - Src:             'support.c:916,18'
          Dst:             atoi
        - Src:             'support.c:918,16'
          Dst:             safe_token
        - Src:             'support.c:919,16'
          Dst:             safe_token
        - Src:             'support.c:921,16'
          Dst:             mktime
        - Src:             'support.c:923,7'
          Dst:             fclose
        - Src:             'support.c:928,11'
          Dst:             strlen
        - Src:             'support.c:929,9'
          Dst:             sstrncpy
        - Src:             'support.c:933,9'
          Dst:             sstrncpy
        - Src:             'support.c:936,30'
          Dst:             atoi
        - Src:             'support.c:936,50'
          Dst:             atoi
        - Src:             'support.c:944,11'
          Dst:             strlen
        - Src:             'support.c:945,9'
          Dst:             sstrncpy
        - Src:             'support.c:949,9'
          Dst:             sstrncpy
        - Src:             'support.c:952,30'
          Dst:             atoi
        - Src:             'support.c:952,50'
          Dst:             atoi
        - Src:             'support.c:959,9'
          Dst:             fgets
        - Src:             'support.c:961,7'
          Dst:             pr_str_strip_end
        - Src:             'support.c:962,7'
          Dst:             sstrncpy
        - Src:             'support.c:966,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: 837
      functionLinenumberEnd: 866
      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:845,10'
          Dst:             __ctype_b_loc
        - Src:             'support.c:852,13'
          Dst:             __ctype_b_loc
        - Src:             'support.c:860,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: 828
      functionLinenumberEnd: 829
      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:829,10'
          Dst:             exists2
    - functionName:    exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 825
      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:825,10'
          Dst:             path_exists
    - functionName:    path_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 806
      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:785,5'
          Branch Sides:    []
      Callsites:
        - Src:             'support.c:783,10'
          Dst:             file_mode2
    - functionName:    file_mode2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 769
      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:750,5'
          Dst:             __errno_location
        - Src:             'support.c:754,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'support.c:755,7'
          Dst:             pr_fsio_lstat
        - Src:             'support.c:757,14'
          Dst:             get_symlink_mode
    - functionName:    get_symlink_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 730
      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:695,5'
          Dst:             __errno_location
        - Src:             'support.c:702,9'
          Dst:             dir_readlink
        - Src:             'support.c:706,9'
          Dst:             pr_fsio_readlink
        - Src:             'support.c:714,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'support.c:715,7'
          Dst:             pr_fsio_lstat
        - Src:             'support.c:718,7'
          Dst:             __errno_location
        - Src:             'support.c:723,14'
          Dst:             get_symlink_mode
    - functionName:    dir_readlink
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 605
      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:441,5'
          Dst:             __errno_location
        - Src:             'support.c:449,9'
          Dst:             pr_fsio_readlink
        - Src:             'support.c:454,3'
          Dst:             pr_trace_msg
        - Src:             'support.c:472,22'
          Dst:             strlen
        - Src:             'support.c:486,11'
          Dst:             strrchr
        - Src:             'support.c:491,18'
          Dst:             make_sub_pool
        - Src:             'support.c:492,7'
          Dst:             pr_pool_tag
        - Src:             'support.c:494,20'
          Dst:             pstrndup
        - Src:             'support.c:495,18'
          Dst:             pdircat
        - Src:             'support.c:498,18'
          Dst:             pcalloc
        - Src:             'support.c:500,13'
          Dst:             pr_fs_clean_path2
        - Src:             'support.c:502,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:507,7'
          Dst:             pr_trace_msg
        - Src:             'support.c:511,7'
          Dst:             sstrncpy
        - Src:             'support.c:512,13'
          Dst:             strlen
        - Src:             'support.c:513,7'
          Dst:             destroy_pool
        - Src:             'support.c:535,14'
          Dst:             make_sub_pool
        - Src:             'support.c:536,3'
          Dst:             pr_pool_tag
        - Src:             'support.c:538,14'
          Dst:             pstrdup
        - Src:             'support.c:546,11'
          Dst:             strrchr
        - Src:             'support.c:551,22'
          Dst:             pstrndup
        - Src:             'support.c:552,20'
          Dst:             pdircat
        - Src:             'support.c:555,20'
          Dst:             pdircat
        - Src:             'support.c:561,14'
          Dst:             pcalloc
        - Src:             'support.c:564,9'
          Dst:             pr_fs_clean_path2
        - Src:             'support.c:566,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:571,5'
          Dst:             sstrncpy
        - Src:             'support.c:572,11'
          Dst:             strlen
        - Src:             'support.c:575,7'
          Dst:             strncmp
        - Src:             'support.c:587,13'
          Dst:             pstrcat
        - Src:             'support.c:594,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:599,5'
          Dst:             sstrncpy
        - Src:             'support.c:600,11'
          Dst:             strlen
        - Src:             'support.c:603,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:    87
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dir_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 821
      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:821,10'
          Dst:             dir_exists2
    - functionName:    dir_exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 817
      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:817,10'
          Dst:             path_exists
    - functionName:    file_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 813
      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:813,10'
          Dst:             file_exists2
    - functionName:    file_exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 809
      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:809,10'
          Dst:             path_exists
    - functionName:    file_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 772
      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:772,10'
          Dst:             file_mode2
    - functionName:    symlink_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 742
      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:742,10'
          Dst:             symlink_mode2
    - functionName:    symlink_mode2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 739
      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:734,5'
          Dst:             __errno_location
        - Src:             'support.c:738,10'
          Dst:             get_symlink_mode
    - functionName:    dir_abs_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 682
      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:    17
      BranchProfiles:
        - Branch String:   'support.c:643,5'
          Branch Sides:    []
      Callsites:
        - Src:             'support.c:635,5'
          Dst:             __errno_location
        - Src:             'support.c:643,13'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:653,16'
          Dst:             pstrdup
        - Src:             'support.c:660,45'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:660,13'
          Dst:             pdircat
        - Src:             'support.c:663,24'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:663,13'
          Dst:             pdircat
        - Src:             'support.c:669,11'
          Dst:             strlen
        - Src:             'support.c:668,11'
          Dst:             strncmp
        - Src:             'support.c:670,15'
          Dst:             pdircat
        - Src:             'support.c:673,15'
          Dst:             pstrdup
        - Src:             'support.c:677,13'
          Dst:             pstrdup
    - functionName:    dir_realpath
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 624
      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:615,5'
          Dst:             __errno_location
        - Src:             'support.c:619,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'support.c:623,10'
          Dst:             pstrdup
    - functionName:    dir_canonical_vpath
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 428
      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:409,5'
          Dst:             __errno_location
        - Src:             'support.c:414,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:415,44'
          Dst:             pr_fs_getvwd
        - Src:             'support.c:415,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:421,42'
          Dst:             pr_fs_getvwd
        - Src:             'support.c:421,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:426,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:427,10'
          Dst:             pstrdup
    - functionName:    dir_canonical_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 401
      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:382,5'
          Dst:             __errno_location
        - Src:             'support.c:387,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:388,44'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:388,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:394,42'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:394,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:399,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:400,10'
          Dst:             pstrdup
    - functionName:    dir_best_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 374
      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:314,5'
          Dst:             __errno_location
        - Src:             'support.c:319,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:320,52'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:320,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:326,50'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:326,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:331,20'
          Dst:             pstrdup
        - Src:             'support.c:331,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:334,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:336,9'
          Dst:             pr_fs_resolve_path
        - Src:             'support.c:341,15'
          Dst:             strrchr
        - Src:             'support.c:344,13'
          Dst:             pr_fs_dircat
        - Src:             'support.c:359,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:364,7'
          Dst:             sstrncpy
        - Src:             'support.c:368,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:373,10'
          Dst:             pstrdup
    - functionName:    dir_interpolate
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 301
      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:262,5'
          Dst:             __errno_location
        - Src:             'support.c:269,12'
          Dst:             pstrdup
        - Src:             'support.c:270,11'
          Dst:             strchr
        - Src:             'support.c:280,9'
          Dst:             strcmp
        - Src:             'support.c:282,13'
          Dst:             pdircat
        - Src:             'support.c:287,12'
          Dst:             pr_auth_getpwnam
        - Src:             'support.c:289,9'
          Dst:             __errno_location
        - Src:             'support.c:293,13'
          Dst:             pdircat
        - Src:             'support.c:297,11'
          Dst:             pstrdup
    - functionName:    get_pathconf_name_max
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 198
      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:197,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: 185
      functionLinenumberEnd: 188
      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:187,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: 205
      functionLinenumberEnd: 253
      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:211,5'
          Dst:             __errno_location
        - Src:             'support.c:217,11'
          Dst:             get_fpathconf_name_max
        - Src:             'support.c:220,22'
          Dst:             __errno_location
        - Src:             'support.c:223,11'
          Dst:             strerror
        - Src:             'support.c:222,9'
          Dst:             pr_log_debug
        - Src:             'support.c:225,9'
          Dst:             __errno_location
        - Src:             'support.c:235,11'
          Dst:             get_pathconf_name_max
        - Src:             'support.c:238,22'
          Dst:             __errno_location
        - Src:             'support.c:241,11'
          Dst:             strerror
        - Src:             'support.c:240,9'
          Dst:             pr_log_debug
        - Src:             'support.c:243,9'
          Dst:             __errno_location
        - Src:             'support.c:251,3'
          Dst:             __errno_location
    - functionName:    run_schedule
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 172
      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:164,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:168,7'
          Dst:             xaset_remove
        - Src:             'support.c:169,7'
          Dst:             destroy_pool
    - functionName:    schedule
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 151
      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:131,9'
          Dst:             make_sub_pool
        - Src:             'support.c:132,5'
          Dst:             pr_pool_tag
        - Src:             'support.c:133,14'
          Dst:             xaset_create
        - Src:             'support.c:139,14'
          Dst:             make_sub_pool
        - Src:             'support.c:140,3'
          Dst:             pr_pool_tag
        - Src:             'support.c:142,7'
          Dst:             pcalloc
        - Src:             'support.c:150,3'
          Dst:             xaset_insert
    - functionName:    pr_signals_unblock
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 118
      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:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:102,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:103,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:108,5'
          Dst:             mask_signals
        - Src:             'support.c:109,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:110,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:113,5'
          Dst:             pr_trace_msg
    - functionName:    mask_signals
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 85
      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:58,5'
          Dst:             sigemptyset
        - Src:             'support.c:60,5'
          Dst:             sigaddset
        - 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:67,5'
          Dst:             sigaddset
        - Src:             'support.c:70,5'
          Dst:             sigaddset
        - Src:             'support.c:72,5'
          Dst:             sigaddset
        - Src:             'support.c:74,9'
          Dst:             sigprocmask
        - Src:             'support.c:76,52'
          Dst:             __errno_location
        - Src:             'support.c:76,43'
          Dst:             strerror
        - Src:             'support.c:75,7'
          Dst:             pr_log_pri
        - Src:             'support.c:80,9'
          Dst:             sigprocmask
        - Src:             'support.c:82,54'
          Dst:             __errno_location
        - Src:             'support.c:82,45'
          Dst:             strerror
        - Src:             'support.c:81,7'
          Dst:             pr_log_pri
    - functionName:    pr_signals_block
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mask_signals
        - pr_trace_msg
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:89,5'
          Dst:             mask_signals
        - Src:             'support.c:90,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:93,5'
          Dst:             pr_trace_msg
    - functionName:    pr_response_send_raw
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 424
      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:405,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:418,3'
          Dst:             pr_vsnprintf
        - Src:             'response.c:423,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:423,3'
          Dst:             pr_netio_printf
        - Src:             'response.c:423,3'
          Dst:             pr_netio_printf
    - functionName:    pr_response_send
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 399
      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:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:377,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:389,3'
          Dst:             pr_vsnprintf
        - Src:             'response.c:394,29'
          Dst:             pstrdup
        - Src:             'response.c:395,28'
          Dst:             pstrdup
        - Src:             'response.c:397,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:397,3'
          Dst:             pr_netio_printf
        - Src:             'response.c:397,3'
          Dst:             pr_netio_printf
    - functionName:    pr_response_send_async
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 371
      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:333,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:345,3'
          Dst:             sstrncpy
        - Src:             'response.c:347,9'
          Dst:             strlen
        - Src:             'response.c:348,3'
          Dst:             sstrcat
        - Src:             'response.c:353,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:358,29'
          Dst:             pstrdup
        - Src:             'response.c:359,28'
          Dst:             pstrdup
        - Src:             'response.c:361,3'
          Dst:             sstrcat
        - Src:             'response.c:363,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:365,5'
          Dst:             pr_netio_printf_async
        - Src:             'response.c:369,5'
          Dst:             pr_netio_printf_async
    - functionName:    pr_response_add
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 324
      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:    99
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:277,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:283,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:288,28'
          Dst:             pcalloc
        - Src:             'response.c:289,26'
          Dst:             pstrdup
        - Src:             'response.c:290,15'
          Dst:             pstrndup
        - Src:             'response.c:293,31'
          Dst:             pstrdup
        - Src:             'response.c:295,28'
          Dst:             pstrndup
        - Src:             'response.c:297,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:317,35'
          Dst:             strcmp
    - functionName:    pr_response_add_err
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 265
      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:    269
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:218,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:224,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:229,28'
          Dst:             pcalloc
        - Src:             'response.c:230,26'
          Dst:             pstrdup
        - Src:             'response.c:231,15'
          Dst:             pstrndup
        - Src:             'response.c:234,31'
          Dst:             pstrdup
        - Src:             'response.c:236,28'
          Dst:             pstrndup
        - Src:             'response.c:238,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:258,35'
          Dst:             strcmp
    - functionName:    pr_response_flush
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 206
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:153,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:155,5'
          Dst:             pr_response_clear
        - Src:             'response.c:163,5'
          Dst:             pr_response_clear
        - Src:             'response.c:172,12'
          Dst:             strcmp
        - Src:             'response.c:173,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:173,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:173,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:180,11'
          Dst:             pr_trace_msg
        - Src:             'response.c:180,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:180,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:184,11'
          Dst:             pr_trace_msg
        - Src:             'response.c:184,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:184,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:192,12'
          Dst:             strcmp
        - Src:             'response.c:193,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:193,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:193,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:199,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:199,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:199,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:205,3'
          Dst:             pr_response_clear
    - functionName:    pr_response_clear
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 140
      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:135,3'
          Dst:             reset_last_response
    - functionName:    reset_last_response
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 64
      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: 130
      functionLinenumberEnd: 131
      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: 119
      functionLinenumberEnd: 128
      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:126,3'
          Dst:             __errno_location
    - functionName:    pr_response_register_handler
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 117
      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: 91
      functionLinenumberEnd: 112
      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:93,5'
          Dst:             __errno_location
        - Src:             'response.c:99,5'
          Dst:             __errno_location
        - Src:             'response.c:104,22'
          Dst:             pstrdup
        - Src:             'response.c:108,21'
          Dst:             pstrdup
    - functionName:    pr_response_set_pool
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 88
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:70,5'
          Dst:             reset_last_response
        - Src:             'response.c:79,31'
          Dst:             pstrdup
        - Src:             'response.c:86,30'
          Dst:             pstrdup
    - functionName:    pr_response_get_pool
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    symtab_hash
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 179
      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: 906
      functionLinenumberEnd: 919
      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:908,5'
          Dst:             destroy_pool
        - Src:             'stash.c:911,17'
          Dst:             make_sub_pool
        - Src:             'stash.c:912,3'
          Dst:             pr_pool_tag
    - functionName:    pr_stash_dump
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 904
      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: 802
      functionLinenumberEnd: 828
      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:805,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:807,15'
          Dst:             pr_stash_remove_conf
        - Src:             'stash.c:811,15'
          Dst:             pr_stash_remove_cmd
        - Src:             'stash.c:815,15'
          Dst:             pr_stash_remove_auth
        - Src:             'stash.c:819,15'
          Dst:             pr_stash_remove_hook
        - Src:             'stash.c:823,7'
          Dst:             __errno_location
    - functionName:    pr_stash_remove_conf
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 652
      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:615,5'
          Dst:             __errno_location
        - Src:             'stash.c:620,23'
          Dst:             strlen
        - Src:             'stash.c:622,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:626,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:629,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:639,7'
          Dst:             xaset_remove
        - Src:             'stash.c:641,7'
          Dst:             destroy_pool
        - Src:             'stash.c:647,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_cmd
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 711
      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:668,5'
          Dst:             __errno_location
        - Src:             'stash.c:673,17'
          Dst:             strlen
        - Src:             'stash.c:675,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:679,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:683,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:697,11'
          Dst:             strcmp
        - Src:             'stash.c:699,7'
          Dst:             xaset_remove
        - Src:             'stash.c:701,7'
          Dst:             destroy_pool
        - Src:             'stash.c:707,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_auth
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 755
      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:720,5'
          Dst:             __errno_location
        - Src:             'stash.c:725,17'
          Dst:             strlen
        - Src:             'stash.c:727,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:731,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:733,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:743,7'
          Dst:             xaset_remove
        - Src:             'stash.c:745,7'
          Dst:             destroy_pool
        - Src:             'stash.c:751,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_hook
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 799
      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:764,5'
          Dst:             __errno_location
        - Src:             'stash.c:769,18'
          Dst:             strlen
        - Src:             'stash.c:771,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:775,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:777,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:787,7'
          Dst:             xaset_remove
        - Src:             'stash.c:789,7'
          Dst:             destroy_pool
        - Src:             'stash.c:795,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    sym_type_hash
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 219
      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:191,12'
          Dst:             symtab_hash
        - Src:             'stash.c:199,7'
          Dst:             pr_log_pri
        - Src:             'stash.c:200,7'
          Dst:             exit
        - Src:             'stash.c:211,16'
          Dst:             tolower
        - Src:             'stash.c:214,12'
          Dst:             symtab_hash
    - functionName:    pr_stash_get_symbol2
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 601
      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:557,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:500,5'
          Dst:             __errno_location
        - Src:             'stash.c:506,15'
          Dst:             strlen
        - Src:             'stash.c:516,16'
          Dst:             sym_type_hash
        - Src:             'stash.c:521,14'
          Dst:             sym_type_hash
        - Src:             'stash.c:525,12'
          Dst:             sym_type_hash
        - Src:             'stash.c:546,5'
          Dst:             __errno_location
        - Src:             'stash.c:551,11'
          Dst:             stash_lookup_next
        - Src:             'stash.c:554,11'
          Dst:             stash_lookup
        - Src:             'stash.c:564,7'
          Dst:             __errno_location
        - Src:             'stash.c:573,7'
          Dst:             __errno_location
        - Src:             'stash.c:582,7'
          Dst:             __errno_location
        - Src:             'stash.c:591,7'
          Dst:             __errno_location
        - Src:             'stash.c:599,3'
          Dst:             __errno_location
    - functionName:    stash_lookup_next
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 487
      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:399,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:417,7'
          Dst:             __errno_location
        - Src:             'stash.c:443,16'
          Dst:             tolower
        - Src:             'stash.c:444,16'
          Dst:             tolower
        - Src:             'stash.c:460,16'
          Dst:             tolower
        - Src:             'stash.c:461,16'
          Dst:             tolower
        - Src:             'stash.c:474,15'
          Dst:             strncasecmp
    - functionName:    stash_lookup
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 391
      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:309,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:327,7'
          Dst:             __errno_location
        - Src:             'stash.c:352,14'
          Dst:             tolower
        - Src:             'stash.c:353,14'
          Dst:             tolower
        - Src:             'stash.c:369,14'
          Dst:             tolower
        - Src:             'stash.c:370,14'
          Dst:             tolower
        - Src:             'stash.c:383,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: 604
      functionLinenumberEnd: 605
      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:605,10'
          Dst:             pr_stash_get_symbol2
    - functionName:    sym_cmp
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 161
      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:124,9'
          Dst:             strncmp
    - functionName:    sym_alloc
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 82
      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:76,14'
          Dst:             pr_pool_create_sz
        - Src:             'stash.c:77,3'
          Dst:             pr_pool_tag
        - Src:             'stash.c:79,9'
          Dst:             pcalloc
    - functionName:    pr_stash_add_symbol
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 302
      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:233,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:229,5'
          Dst:             __errno_location
        - Src:             'stash.c:235,13'
          Dst:             sym_alloc
        - Src:             'stash.c:244,13'
          Dst:             sym_alloc
        - Src:             'stash.c:253,13'
          Dst:             sym_alloc
        - Src:             'stash.c:262,13'
          Dst:             sym_alloc
        - Src:             'stash.c:271,7'
          Dst:             __errno_location
        - Src:             'stash.c:277,5'
          Dst:             destroy_pool
        - Src:             'stash.c:278,5'
          Dst:             __errno_location
        - Src:             'stash.c:282,17'
          Dst:             strlen
        - Src:             'stash.c:284,5'
          Dst:             destroy_pool
        - Src:             'stash.c:285,5'
          Dst:             __errno_location
        - Src:             'stash.c:292,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:297,25'
          Dst:             xaset_create
        - Src:             'stash.c:297,25'
          Dst:             sym_cmp
        - Src:             'stash.c:300,3'
          Dst:             xaset_insert_sort
    - functionName:    sig_alarm
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - alarm
        - get_current_time
        - pr_log_pri
        - sigaction
        - sigemptyset
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:232,3'
          Dst:             sigemptyset
        - Src:             'timers.c:243,7'
          Dst:             sigaction
        - Src:             'timers.c:246,16'
          Dst:             __errno_location
        - Src:             'timers.c:246,7'
          Dst:             strerror
        - Src:             'timers.c:244,5'
          Dst:             pr_log_pri
        - Src:             'timers.c:262,20'
          Dst:             get_current_time
        - Src:             'timers.c:263,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:    get_current_time
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - clock_gettime
        - pr_trace_msg
        - strerror
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:210,7'
          Dst:             clock_gettime
        - Src:             'timers.c:212,71'
          Dst:             __errno_location
        - Src:             'timers.c:212,62'
          Dst:             strerror
        - Src:             'timers.c:211,5'
          Dst:             pr_trace_msg
        - Src:             'timers.c:221,5'
          Dst:             time
    - 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:    clock_gettime
      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:    timers_init
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_pool_tag
        - register_cleanup2
        - timer_cleanup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:626,5'
          Dst:             destroy_pool
        - Src:             'timers.c:629,16'
          Dst:             make_sub_pool
        - Src:             'timers.c:630,3'
          Dst:             pr_pool_tag
        - Src:             'timers.c:631,3'
          Dst:             register_cleanup2
        - Src:             'timers.c:631,3'
          Dst:             timer_cleanup
    - functionName:    timer_cleanup
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 79
      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:    pr_timer_usleep
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 608
      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:596,5'
          Dst:             __errno_location
        - Src:             'timers.c:603,3'
          Dst:             pr_signals_block
        - Src:             'timers.c:604,10'
          Dst:             select
        - Src:             'timers.c:605,3'
          Dst:             pr_signals_unblock
    - functionName:    sleep_cb
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 563
      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: 566
      functionLinenumberEnd: 590
      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:574,5'
          Dst:             __errno_location
        - Src:             'timers.c:578,13'
          Dst:             pr_timer_add
        - Src:             'timers.c:578,13'
          Dst:             sleep_cb
        - Src:             'timers.c:583,3'
          Dst:             sigemptyset
        - Src:             'timers.c:585,5'
          Dst:             sigsuspend
        - Src:             'timers.c:586,5'
          Dst:             handle_alarm
    - functionName:    pr_timer_add
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          287
      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
        - register_cleanup2
        - set_sig_alarm
        - timer_cleanup
        - timer_cmp
        - xaset_create
        - xaset_insert
        - xaset_insert_sort
        - xaset_remove
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:456,5'
          Dst:             __errno_location
        - Src:             'timers.c:461,14'
          Dst:             xaset_create
        - Src:             'timers.c:461,14'
          Dst:             timer_cmp
        - Src:             'timers.c:468,9'
          Dst:             __errno_location
        - Src:             'timers.c:475,19'
          Dst:             xaset_create
        - Src:             'timers.c:479,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:482,5'
          Dst:             xaset_remove
        - Src:             'timers.c:486,20'
          Dst:             make_sub_pool
        - Src:             'timers.c:487,7'
          Dst:             pr_pool_tag
        - Src:             'timers.c:488,7'
          Dst:             register_cleanup2
        - Src:             'timers.c:488,7'
          Dst:             timer_cleanup
        - Src:             'timers.c:492,9'
          Dst:             palloc
        - Src:             'timers.c:517,18'
          Dst:             xaset_create
        - Src:             'timers.c:519,5'
          Dst:             xaset_insert
        - Src:             'timers.c:522,5'
          Dst:             xaset_insert_sort
        - Src:             'timers.c:524,5'
          Dst:             set_sig_alarm
        - Src:             'timers.c:530,5'
          Dst:             handle_alarm
        - Src:             'timers.c:533,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:535,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: 297
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - alarm
        - get_current_time
        - pr_signals_handle
        - process_timers
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:317,7'
          Dst:             alarm
        - Src:             'timers.c:320,13'
          Dst:             get_current_time
        - Src:             'timers.c:325,21'
          Dst:             process_timers
        - Src:             'timers.c:328,7'
          Dst:             alarm
        - Src:             'timers.c:335,3'
          Dst:             pr_signals_handle
    - functionName:    process_timers
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 200
      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:91,16'
          Dst:             xaset_create
        - Src:             'timers.c:121,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:131,9'
          Dst:             xaset_remove
        - Src:             'timers.c:132,9'
          Dst:             xaset_insert
        - Src:             'timers.c:137,9'
          Dst:             pr_trace_msg
        - Src:             'timers.c:150,11'
          Dst:             xaset_remove
        - Src:             'timers.c:151,11'
          Dst:             xaset_insert
        - Src:             'timers.c:157,11'
          Dst:             pr_trace_msg
        - Src:             'timers.c:161,11'
          Dst:             xaset_remove
        - Src:             'timers.c:163,11'
          Dst:             xaset_insert
        - Src:             'timers.c:172,5'
          Dst:             pr_signals_handle
        - Src:             'timers.c:174,5'
          Dst:             xaset_remove
        - Src:             'timers.c:175,5'
          Dst:             xaset_insert_sort
        - Src:             'timers.c:180,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_alarms_block
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 550
      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: 552
      functionLinenumberEnd: 559
      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:557,5'
          Dst:             handle_alarm
    - functionName:    timer_cmp
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      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: 267
      functionLinenumberEnd: 295
      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:272,3'
          Dst:             sigemptyset
        - Src:             'timers.c:283,7'
          Dst:             sigaction
        - Src:             'timers.c:286,16'
          Dst:             __errno_location
        - Src:             'timers.c:286,7'
          Dst:             strerror
        - Src:             'timers.c:284,5'
          Dst:             pr_log_pri
    - functionName:    pr_timer_remove
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 447
      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:394,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:407,9'
          Dst:             xaset_remove
        - Src:             'timers.c:408,9'
          Dst:             xaset_insert
        - Src:             'timers.c:415,9'
          Dst:             handle_alarm
        - Src:             'timers.c:418,7'
          Dst:             pr_trace_msg
        - Src:             'timers.c:432,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:435,5'
          Dst:             __errno_location
    - functionName:    pr_timer_reset
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 383
      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:342,5'
          Dst:             __errno_location
        - Src:             'timers.c:347,5'
          Dst:             __errno_location
        - Src:             'timers.c:351,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:354,16'
          Dst:             xaset_create
        - Src:             'timers.c:361,7'
          Dst:             xaset_remove
        - Src:             'timers.c:362,7'
          Dst:             xaset_insert
        - Src:             'timers.c:369,7'
          Dst:             handle_alarm
        - Src:             'timers.c:374,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:377,5'
          Dst:             pr_trace_msg
    - functionName:    pr_str_is_fnmatch
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1390
      functionLinenumberEnd: 1431
      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:1398,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_str_is_boolean
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1347
      functionLinenumberEnd: 1387
      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:1349,5'
          Dst:             __errno_location
        - Src:             'str.c:1353,7'
          Dst:             strncasecmp
        - Src:             'str.c:1357,7'
          Dst:             strncasecmp
        - Src:             'str.c:1361,7'
          Dst:             strncasecmp
        - Src:             'str.c:1365,7'
          Dst:             strncasecmp
        - Src:             'str.c:1369,7'
          Dst:             strncasecmp
        - Src:             'str.c:1373,7'
          Dst:             strncasecmp
        - Src:             'str.c:1377,7'
          Dst:             strncasecmp
        - Src:             'str.c:1381,7'
          Dst:             strncasecmp
        - Src:             'str.c:1385,3'
          Dst:             __errno_location
    - functionName:    pr_str_get_token
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1344
      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:1344,10'
          Dst:             pr_str_get_token2
    - functionName:    pr_str_get_token2
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1341
      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:1321,5'
          Dst:             __errno_location
        - Src:             'str.c:1327,20'
          Dst:             strchr
    - functionName:    pr_str_get_word
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1302
      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:1248,5'
          Dst:             __errno_location
        - Src:             'str.c:1253,20'
          Dst:             __ctype_b_loc
        - Src:             'str.c:1254,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:1279,50'
          Dst:             __ctype_b_loc
        - Src:             'str.c:1280,5'
          Dst:             pr_signals_handle
    - functionName:    pr_str_get_nbytes
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1239
      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:1172,5'
          Dst:             __errno_location
        - Src:             'str.c:1178,5'
          Dst:             __errno_location
        - Src:             'str.c:1186,14'
          Dst:             strncasecmp
        - Src:             'str.c:1189,14'
          Dst:             strncasecmp
        - Src:             'str.c:1192,14'
          Dst:             strncasecmp
        - Src:             'str.c:1195,14'
          Dst:             strncasecmp
        - Src:             'str.c:1198,14'
          Dst:             strncasecmp
        - Src:             'str.c:1202,5'
          Dst:             __errno_location
        - Src:             'str.c:1206,3'
          Dst:             __errno_location
        - Src:             'str.c:1209,8'
          Dst:             strtoull
        - Src:             'str.c:1214,7'
          Dst:             __errno_location
        - Src:             'str.c:1220,5'
          Dst:             __errno_location
        - Src:             'str.c:1230,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: 1033
      functionLinenumberEnd: 1164
      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:1040,5'
          Dst:             __errno_location
        - Src:             'str.c:1044,7'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1048,7'
          Dst:             __errno_location
        - Src:             'str.c:1059,9'
          Dst:             strlen
        - Src:             'str.c:1061,5'
          Dst:             __errno_location
        - Src:             'str.c:1074,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1076,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1081,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1083,9'
          Dst:             __errno_location
        - Src:             'str.c:1094,5'
          Dst:             __errno_location
        - Src:             'str.c:1098,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1100,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1105,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1107,9'
          Dst:             __errno_location
        - Src:             'str.c:1118,5'
          Dst:             __errno_location
        - Src:             'str.c:1122,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1124,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1129,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1131,9'
          Dst:             __errno_location
        - Src:             'str.c:1142,5'
          Dst:             __errno_location
        - Src:             'str.c:1147,16'
          Dst:             strtol
        - Src:             'str.c:1150,5'
          Dst:             __errno_location
        - Src:             'str.c:1155,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: 402
      functionLinenumberEnd: 445
      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:407,5'
          Dst:             __errno_location
        - Src:             'str.c:412,12'
          Dst:             strlen
        - Src:             'str.c:416,17'
          Dst:             strlen
        - Src:             'str.c:434,9'
          Dst:             strncasecmp
        - Src:             'str.c:439,9'
          Dst:             strncmp
    - functionName:    pr_gid2str
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1030
      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:1019,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1022,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1026,12'
          Dst:             pstrdup
    - functionName:    pstrdup
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 284
      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:    328
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:272,5'
          Dst:             __errno_location
        - Src:             'str.c:276,9'
          Dst:             strlen
        - Src:             'str.c:278,9'
          Dst:             palloc
        - Src:             'str.c:280,5'
          Dst:             sstrncpy
    - functionName:    pr_uid2str
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 1009
      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:998,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1001,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1005,12'
          Dst:             pstrdup
    - functionName:    pr_str2gid
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 988
      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:962,5'
          Dst:             __errno_location
        - Src:             'str.c:981,7'
          Dst:             parse_ul
    - functionName:    parse_ul
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 524
      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:516,9'
          Dst:             strtoul
        - Src:             'str.c:518,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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_str2uid
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 952
      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:926,5'
          Dst:             __errno_location
        - Src:             'str.c:945,7'
          Dst:             parse_ul
    - functionName:    pr_str_array_to_text
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 916
      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:899,5'
          Dst:             __errno_location
        - Src:             'str.c:904,12'
          Dst:             pstrdup
        - Src:             'str.c:912,12'
          Dst:             pstrcat
    - functionName:    pstrcat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 399
      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:    1098
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:372,5'
          Dst:             __errno_location
        - Src:             'str.c:379,12'
          Dst:             strlen
        - Src:             'str.c:384,15'
          Dst:             pcalloc
        - Src:             'str.c:391,14'
          Dst:             strlen
        - Src:             'str.c:392,5'
          Dst:             sstrcat
    - functionName:    sstrcat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 264
      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:    41
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:237,5'
          Dst:             __errno_location
    - functionName:    pr_str_text_to_array
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 889
      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:845,5'
          Dst:             __errno_location
        - Src:             'str.c:849,14'
          Dst:             strlen
        - Src:             'str.c:850,11'
          Dst:             make_array
        - Src:             'str.c:856,18'
          Dst:             memchr
        - Src:             'str.c:860,5'
          Dst:             pr_signals_handle
        - Src:             'str.c:866,14'
          Dst:             palloc
        - Src:             'str.c:869,19'
          Dst:             push_array
        - Src:             'str.c:881,20'
          Dst:             memchr
        - Src:             'str.c:885,38'
          Dst:             pstrdup
        - Src:             'str.c:885,17'
          Dst:             push_array
    - functionName:    distance_cmp
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 749
      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:745,12'
          Dst:             strcasecmp
        - Src:             'str.c:748,10'
          Dst:             strcmp
    - functionName:    pr_str_get_similars
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 836
      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:762,5'
          Dst:             __errno_location
        - Src:             'str.c:767,5'
          Dst:             __errno_location
        - Src:             'str.c:775,14'
          Dst:             make_sub_pool
        - Src:             'str.c:776,3'
          Dst:             pr_pool_tag
        - Src:             'str.c:782,15'
          Dst:             pcalloc
        - Src:             'str.c:784,9'
          Dst:             strlen
        - Src:             'str.c:791,12'
          Dst:             pcalloc
        - Src:             'str.c:797,11'
          Dst:             strncasecmp
        - Src:             'str.c:802,11'
          Dst:             strncmp
        - Src:             'str.c:815,24'
          Dst:             pr_str_levenshtein
        - Src:             'str.c:822,3'
          Dst:             qsort
        - Src:             'str.c:822,3'
          Dst:             distance_cmp
        - Src:             'str.c:824,14'
          Dst:             make_array
        - Src:             'str.c:830,25'
          Dst:             push_array
        - Src:             'str.c:834,3'
          Dst:             destroy_pool
    - functionName:    pr_str_levenshtein
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 718
      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:645,5'
          Dst:             __errno_location
        - Src:             'str.c:649,10'
          Dst:             strlen
        - Src:             'str.c:650,10'
          Dst:             strlen
        - Src:             'str.c:652,14'
          Dst:             make_sub_pool
        - Src:             'str.c:653,3'
          Dst:             pr_pool_tag
        - Src:             'str.c:658,10'
          Dst:             pstrdup
        - Src:             'str.c:660,15'
          Dst:             tolower
        - Src:             'str.c:663,10'
          Dst:             pstrdup
        - Src:             'str.c:665,15'
          Dst:             tolower
        - Src:             'str.c:672,10'
          Dst:             pcalloc
        - Src:             'str.c:673,10'
          Dst:             pcalloc
        - Src:             'str.c:674,10'
          Dst:             pcalloc
        - Src:             'str.c:716,3'
          Dst:             destroy_pool
    - functionName:    c2h
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 582
      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: 585
      functionLinenumberEnd: 629
      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:592,5'
          Dst:             __errno_location
        - Src:             'str.c:597,15'
          Dst:             strlen
        - Src:             'str.c:601,30'
          Dst:             pstrdup
        - Src:             'str.c:606,10'
          Dst:             palloc
        - Src:             'str.c:611,9'
          Dst:             c2h
        - Src:             'str.c:612,7'
          Dst:             __errno_location
        - Src:             'str.c:616,9'
          Dst:             c2h
        - Src:             'str.c:617,7'
          Dst:             __errno_location
    - functionName:    pr_str_bin2hex
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 560
      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:535,5'
          Dst:             __errno_location
        - Src:             'str.c:540,12'
          Dst:             pstrdup
        - Src:             'str.c:550,9'
          Dst:             palloc
    - functionName:    pr_str_strip_end
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 493
      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:479,5'
          Dst:             __errno_location
        - Src:             'str.c:483,9'
          Dst:             strlen
        - Src:             'str.c:485,17'
          Dst:             strchr
        - Src:             'str.c:486,5'
          Dst:             pr_signals_handle
    - functionName:    pr_str_strip
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 472
      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:453,5'
          Dst:             __errno_location
        - Src:             'str.c:458,21'
          Dst:             __ctype_b_loc
        - Src:             'str.c:462,22'
          Dst:             strlen
        - Src:             'str.c:462,38'
          Dst:             __ctype_b_loc
        - Src:             'str.c:469,13'
          Dst:             pstrndup
    - functionName:    pstrndup
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 297
      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:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:290,5'
          Dst:             __errno_location
        - Src:             'str.c:294,9'
          Dst:             palloc
        - Src:             'str.c:295,3'
          Dst:             sstrncpy
    - functionName:    pdircat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 364
      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:307,5'
          Dst:             __errno_location
        - Src:             'str.c:329,15'
          Dst:             strlen
        - Src:             'str.c:335,24'
          Dst:             pcalloc
        - Src:             'str.c:348,7'
          Dst:             sstrcat
        - Src:             'str.c:353,14'
          Dst:             strlen
        - Src:             'str.c:354,5'
          Dst:             sstrcat
    - functionName:    str_vreplace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 170
      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:47,10'
          Dst:             strlen
        - Src:             'str.c:63,20'
          Dst:             strstr
        - Src:             'str.c:65,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:68,9'
          Dst:             __errno_location
        - Src:             'str.c:77,14'
          Dst:             strlen
        - Src:             'str.c:78,13'
          Dst:             strstr
        - Src:             'str.c:85,24'
          Dst:             strlen
        - Src:             'str.c:85,36'
          Dst:             strlen
        - Src:             'str.c:115,5'
          Dst:             __errno_location
        - Src:             'str.c:119,24'
          Dst:             pcalloc
        - Src:             'str.c:127,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:129,14'
          Dst:             strlen
        - Src:             'str.c:130,14'
          Dst:             strlen
        - Src:             'str.c:132,11'
          Dst:             strncmp
        - Src:             'str.c:133,36'
          Dst:             strlen
        - Src:             'str.c:133,9'
          Dst:             sstrncpy
        - Src:             'str.c:136,11'
          Dst:             pr_log_pri
        - Src:             'str.c:154,9'
          Dst:             pr_log_pri
    - functionName:    pr_str_replace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 203
      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:194,5'
          Dst:             __errno_location
        - Src:             'str.c:199,9'
          Dst:             str_vreplace
    - functionName:    quote_dir
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 183
      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:183,10'
          Dst:             pr_str_quote
    - functionName:    pr_str_quote
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 180
      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:175,5'
          Dst:             __errno_location
        - Src:             'str.c:179,10'
          Dst:             sreplace
    - functionName:    sreplace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 226
      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:211,5'
          Dst:             __errno_location
        - Src:             'str.c:216,9'
          Dst:             str_vreplace
        - Src:             'str.c:220,7'
          Dst:             __errno_location
    - functionName:    get_setxattr_flags
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1038
      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: 688
      functionLinenumberEnd: 704
      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:697,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: 663
      functionLinenumberEnd: 685
      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:678,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: 596
      functionLinenumberEnd: 641
      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:600,11'
          Dst:             make_array
        - Src:             'fsio.c:629,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:634,38'
          Dst:             pstrndup
        - Src:             'fsio.c:634,17'
          Dst:             push_array
    - functionName:    unix_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 660
      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:653,9'
          Dst:             listxattr
    - functionName:    fs_statcache_evict
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1343
      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:1316,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1330,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1334,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1339,10'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1340,10'
          Dst:             xaset_remove
        - Src:             'fsio.c:1341,3'
          Dst:             destroy_pool
    - functionName:    fs_statcache_add
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1400
      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:1361,17'
          Dst:             pr_table_count
        - Src:             'fsio.c:1365,9'
          Dst:             fs_statcache_evict
        - Src:             'fsio.c:1367,69'
          Dst:             __errno_location
        - Src:             'fsio.c:1367,60'
          Dst:             strerror
        - Src:             'fsio.c:1366,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1374,13'
          Dst:             make_sub_pool
        - Src:             'fsio.c:1375,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:1376,8'
          Dst:             pcalloc
        - Src:             'fsio.c:1378,17'
          Dst:             pstrndup
        - Src:             'fsio.c:1384,9'
          Dst:             pr_table_add
        - Src:             'fsio.c:1386,21'
          Dst:             __errno_location
        - Src:             'fsio.c:1392,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:1393,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1396,5'
          Dst:             xaset_insert_end
    - functionName:    fs_statcache_get
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1274
      functionLinenumberEnd: 1306
      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:1277,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1278,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1282,8'
          Dst:             pr_table_get
        - Src:             'fsio.c:1289,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1295,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1299,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1300,12'
          Dst:             xaset_remove
        - Src:             'fsio.c:1301,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:1304,3'
          Dst:             __errno_location
    - functionName:    sys_rmdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1221
      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:1213,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:1219,9'
          Dst:             rmdir
    - functionName:    chroot_allow_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 163
      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:133,14'
          Dst:             strlen
        - Src:             'fsio.c:140,9'
          Dst:             strcmp
        - Src:             'fsio.c:141,9'
          Dst:             strcmp
        - Src:             'fsio.c:146,9'
          Dst:             strncmp
        - Src:             'fsio.c:147,9'
          Dst:             strncmp
        - Src:             'fsio.c:153,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:155,5'
          Dst:             pr_log_debug
        - Src:             'fsio.c:159,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: 1195
      functionLinenumberEnd: 1207
      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:1199,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:1205,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: 1191
      functionLinenumberEnd: 1192
      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:1192,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: 1183
      functionLinenumberEnd: 1184
      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:1184,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: 1165
      functionLinenumberEnd: 1172
      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:1166,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: 1174
      functionLinenumberEnd: 1181
      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:1175,7'
          Dst:             chdir
        - Src:             'fsio.c:1179,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: 2695
      functionLinenumberEnd: 2709
      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:2696,7'
          Dst:             pr_fs_resolve_path
        - Src:             'fsio.c:2700,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2704,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:2706,13'
          Dst:             strlen
    - functionName:    pr_fs_resolve_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3174
      functionLinenumberEnd: 3347
      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:3188,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3192,7'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3193,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3197,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3207,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3209,11'
          Dst:             strncmp
        - Src:             'fsio.c:3215,11'
          Dst:             strncmp
        - Src:             'fsio.c:3221,11'
          Dst:             strncmp
        - Src:             'fsio.c:3235,13'
          Dst:             strchr
        - Src:             'fsio.c:3237,27'
          Dst:             strlen
        - Src:             'fsio.c:3248,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3254,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3258,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3261,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3265,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3266,11'
          Dst:             cache_stat
        - Src:             'fsio.c:3267,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3277,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3285,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3289,15'
          Dst:             pr_fsio_readlink
        - Src:             'fsio.c:3291,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3310,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:3312,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3318,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3319,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3322,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3328,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3333,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3337,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3342,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3345,3'
          Dst:             sstrncpy
    - functionName:    lookup_dir_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1524
      functionLinenumberEnd: 1565
      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:1532,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:1538,7'
          Dst:             pr_fs_valid_path
        - Src:             'fsio.c:1539,9'
          Dst:             pr_fs_dircat
        - Src:             'fsio.c:1544,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:1551,17'
          Dst:             strlen
        - Src:             'fsio.c:1556,5'
          Dst:             sstrcat
        - Src:             'fsio.c:1559,8'
          Dst:             pr_get_fs
    - functionName:    pr_fs_valid_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3756
      functionLinenumberEnd: 3783
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3758,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3770,39'
          Dst:             strlen
        - Src:             'fsio.c:3770,11'
          Dst:             strncmp
        - Src:             'fsio.c:3781,3'
          Dst:             __errno_location
    - functionName:    pr_fs_dircat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2719
      functionLinenumberEnd: 2814
      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:2730,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2736,13'
          Dst:             strlen
        - Src:             'fsio.c:2737,13'
          Dst:             strlen
        - Src:             'fsio.c:2749,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2751,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2757,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2759,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2764,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2769,11'
          Dst:             strdup
        - Src:             'fsio.c:2774,11'
          Dst:             strdup
        - Src:             'fsio.c:2776,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2780,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2785,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2792,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:2798,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2803,3'
          Dst:             sstrcat
    - functionName:    pr_get_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2619
      functionLinenumberEnd: 2693
      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:2625,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2657,23'
          Dst:             strlen
        - Src:             'fsio.c:2658,37'
          Dst:             strlen
        - Src:             'fsio.c:2658,10'
          Dst:             strncmp
        - Src:             'fsio.c:2662,11'
          Dst:             strcmp
    - functionName:    pr_fs_interpolate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2823
      functionLinenumberEnd: 2969
      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:2831,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2836,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2853,13'
          Dst:             strlen
        - Src:             'fsio.c:2859,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2867,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2872,9'
          Dst:             strchr
        - Src:             'fsio.c:2883,9'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:2888,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2900,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2913,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2919,9'
          Dst:             strcmp
        - Src:             'fsio.c:2921,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2935,11'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2936,7'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2938,12'
          Dst:             pr_auth_getpwnam
        - Src:             'fsio.c:2940,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:2941,9'
          Dst:             __errno_location
        - Src:             'fsio.c:2945,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2948,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:2953,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2956,13'
          Dst:             strlen
        - Src:             'fsio.c:2965,5'
          Dst:             sstrncpy
    - functionName:    cache_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1403
      functionLinenumberEnd: 1509
      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:1413,9'
          Dst:             time
        - Src:             'fsio.c:1425,7'
          Dst:             sstrcat
        - Src:             'fsio.c:1432,11'
          Dst:             strncmp
        - Src:             'fsio.c:1433,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1438,11'
          Dst:             strncmp
        - Src:             'fsio.c:1439,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1443,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:1446,5'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:1449,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:1464,14'
          Dst:             strlen
        - Src:             'fsio.c:1466,8'
          Dst:             fs_statcache_get
        - Src:             'fsio.c:1474,7'
          Dst:             strerror
        - Src:             'fsio.c:1471,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1477,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1482,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1485,12'
          Dst:             __errno_location
        - Src:             'fsio.c:1492,9'
          Dst:             fs_statcache_add
        - Src:             'fsio.c:1496,71'
          Dst:             __errno_location
        - Src:             'fsio.c:1496,62'
          Dst:             strerror
        - Src:             'fsio.c:1495,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1501,15'
          Dst:             strerror
        - Src:             'fsio.c:1499,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1505,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_readlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4929
      functionLinenumberEnd: 4956
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4935,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4939,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4951,3'
          Dst:             pr_trace_msg
    - functionName:    lookup_file_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1572
      functionLinenumberEnd: 1652
      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:1578,7'
          Dst:             strchr
        - Src:             'fsio.c:1579,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:1603,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1627,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1634,9'
          Dst:             strchr
        - Src:             'fsio.c:1644,14'
          Dst:             lookup_file_canon_fs
    - functionName:    lookup_file_canon_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1654
      functionLinenumberEnd: 1678
      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:1659,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:1662,11'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:1663,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:1667,11'
          Dst:             pr_fs_dircat
        - Src:             'fsio.c:1677,10'
          Dst:             lookup_file_fs
    - functionName:    pr_fs_resolve_partial
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2971
      functionLinenumberEnd: 3172
      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:2991,7'
          Branch Sides:    []
      Callsites:
        - Src:             'fsio.c:2985,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2991,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:2996,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:2997,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:3002,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3003,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3007,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3014,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3017,11'
          Dst:             strncmp
        - Src:             'fsio.c:3023,11'
          Dst:             strncmp
        - Src:             'fsio.c:3039,11'
          Dst:             strncmp
        - Src:             'fsio.c:3045,11'
          Dst:             strncmp
        - Src:             'fsio.c:3060,13'
          Dst:             strchr
        - Src:             'fsio.c:3062,27'
          Dst:             strlen
        - Src:             'fsio.c:3073,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3080,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3084,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3087,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3091,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3093,11'
          Dst:             cache_stat
        - Src:             'fsio.c:3103,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3111,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3115,15'
          Dst:             pr_fsio_readlink
        - Src:             'fsio.c:3117,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3135,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:3137,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3143,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3144,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3147,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3153,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3158,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3162,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3167,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3170,3'
          Dst:             sstrncpy
    - functionName:    pr_fs_clean_path2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3349
      functionLinenumberEnd: 3472
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3357,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3365,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:3377,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3379,11'
          Dst:             strncmp
        - Src:             'fsio.c:3385,11'
          Dst:             strncmp
        - Src:             'fsio.c:3391,11'
          Dst:             strncmp
        - Src:             'fsio.c:3396,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3410,11'
          Dst:             strncmp
        - Src:             'fsio.c:3415,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3427,13'
          Dst:             strchr
        - Src:             'fsio.c:3429,27'
          Dst:             strlen
        - Src:             'fsio.c:3440,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3446,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3452,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3457,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3462,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3467,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3470,3'
          Dst:             sstrncpy
    - functionName:    sys_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      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:203,10'
          Dst:             stat
    - functionName:    sys_lstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 211
      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:211,10'
          Dst:             lstat
    - functionName:    pr_fsio_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4806
      functionLinenumberEnd: 4830
      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:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4811,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4815,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4827,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4829,10'
          Dst:             cache_stat
    - functionName:    sys_fsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1162
      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:1138,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1143,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: 1082
      functionLinenumberEnd: 1123
      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:1096,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1104,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: 1043
      functionLinenumberEnd: 1078
      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:1054,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1059,9'
          Dst:             setxattr
    - functionName:    sys_fremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1010
      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:995,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: 947
      functionLinenumberEnd: 980
      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:961,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: 916
      functionLinenumberEnd: 943
      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:928,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: 850
      functionLinenumberEnd: 913
      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:857,9'
          Dst:             unix_flistxattr
        - Src:             'fsio.c:864,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:870,14'
          Dst:             palloc
        - Src:             'fsio.c:872,9'
          Dst:             unix_flistxattr
        - Src:             'fsio.c:879,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:884,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:885,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:893,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:896,7'
          Dst:             pr_trace_msg
    - functionName:    sys_llistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 848
      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:792,9'
          Dst:             unix_llistxattr
        - Src:             'fsio.c:799,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:805,14'
          Dst:             palloc
        - Src:             'fsio.c:807,9'
          Dst:             unix_llistxattr
        - Src:             'fsio.c:814,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:819,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:820,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:828,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:831,7'
          Dst:             pr_trace_msg
    - functionName:    sys_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 782
      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:726,9'
          Dst:             unix_listxattr
        - Src:             'fsio.c:733,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:739,14'
          Dst:             palloc
        - Src:             'fsio.c:741,9'
          Dst:             unix_listxattr
        - Src:             'fsio.c:748,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:753,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:754,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:762,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:765,7'
          Dst:             pr_trace_msg
    - functionName:    sys_fgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 592
      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:575,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: 524
      functionLinenumberEnd: 559
      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:538,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: 491
      functionLinenumberEnd: 520
      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:503,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: 481
      functionLinenumberEnd: 487
      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:487,10'
          Dst:             pstrdup
    - functionName:    sys_fsync
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 478
      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:472,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: 448
      functionLinenumberEnd: 466
      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:456,9'
          Dst:             futimes
        - Src:             'fsio.c:458,7'
          Dst:             __errno_location
        - Src:             'fsio.c:459,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: 434
      functionLinenumberEnd: 446
      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:438,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:444,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: 430
      functionLinenumberEnd: 431
      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:431,10'
          Dst:             sys_access
    - functionName:    sys_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 427
      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:422,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:426,10'
          Dst:             pr_fs_have_access
    - functionName:    pr_fs_have_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7346
      functionLinenumberEnd: 7418
      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:7350,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7397,7'
          Dst:             __errno_location
        - Src:             'fsio.c:7404,7'
          Dst:             __errno_location
        - Src:             'fsio.c:7411,7'
          Dst:             __errno_location
    - functionName:    sys_lchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 412
      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:404,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:410,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: 396
      functionLinenumberEnd: 397
      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:397,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: 382
      functionLinenumberEnd: 394
      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:386,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:392,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: 378
      functionLinenumberEnd: 379
      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:379,10'
          Dst:             fchmod
    - functionName:    sys_chmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 376
      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:368,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:374,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: 350
      functionLinenumberEnd: 362
      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:354,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:360,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: 346
      functionLinenumberEnd: 347
      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:347,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: 327
      functionLinenumberEnd: 339
      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:331,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:337,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: 342
      functionLinenumberEnd: 343
      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:343,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: 312
      functionLinenumberEnd: 324
      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:316,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:322,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: 307
      functionLinenumberEnd: 308
      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:308,10'
          Dst:             lseek
    - functionName:    sys_write
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 304
      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:304,10'
          Dst:             write
    - functionName:    sys_pwrite
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 295
      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:295,10'
          Dst:             pwrite
    - functionName:    sys_read
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 289
      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:289,10'
          Dst:             read
    - functionName:    sys_pread
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 280
      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:280,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: 273
      functionLinenumberEnd: 274
      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:274,10'
          Dst:             close
    - functionName:    sys_open
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 271
      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:262,13'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:269,9'
          Dst:             open
    - functionName:    sys_unlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 245
      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:237,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:243,9'
          Dst:             unlink
    - functionName:    sys_rename
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 231
      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:218,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:223,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:229,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: 206
      functionLinenumberEnd: 207
      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:207,10'
          Dst:             fstat
    - functionName:    init_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7550
      functionLinenumberEnd: 7634
      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:7554,13'
          Dst:             pr_create_fs
        - Src:             'fsio.c:7560,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:7561,5'
          Dst:             exit
        - Src:             'fsio.c:7564,22'
          Dst:             pstrdup
        - Src:             'fsio.c:7617,7'
          Dst:             getcwd
        - Src:             'fsio.c:7619,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:7622,5'
          Dst:             pr_fsio_chdir
        - Src:             'fsio.c:7623,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:7627,20'
          Dst:             make_sub_pool
        - Src:             'fsio.c:7628,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:7629,24'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:7630,24'
          Dst:             xaset_create
        - Src:             'fsio.c:7631,25'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:7632,25'
          Dst:             xaset_create
    - functionName:    pr_create_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2371
      functionLinenumberEnd: 2399
      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:2378,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2383,13'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2384,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2386,8'
          Dst:             pcalloc
        - Src:             'fsio.c:2389,17'
          Dst:             pstrdup
    - functionName:    sys_closedir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1188
      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:1188,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: 3945
      functionLinenumberEnd: 3985
      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:3951,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3955,3'
          Dst:             pr_fs_clean_path
        - Src:             'fsio.c:3957,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3969,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3977,7'
          Dst:             pr_fs_virtual_path
        - Src:             'fsio.c:3980,7'
          Dst:             sstrncpy
    - functionName:    pr_fs_clean_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3474
      functionLinenumberEnd: 3476
      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:3475,3'
          Dst:             pr_fs_clean_path2
    - functionName:    pr_fs_virtual_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3785
      functionLinenumberEnd: 3898
      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:3796,7'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3797,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3801,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3816,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3818,11'
          Dst:             strncmp
        - Src:             'fsio.c:3824,11'
          Dst:             strncmp
        - Src:             'fsio.c:3830,11'
          Dst:             strncmp
        - Src:             'fsio.c:3845,11'
          Dst:             strncmp
        - Src:             'fsio.c:3859,13'
          Dst:             strchr
        - Src:             'fsio.c:3861,27'
          Dst:             strlen
        - Src:             'fsio.c:3872,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3878,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3882,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3885,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3889,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3894,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3897,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: 7497
      functionLinenumberEnd: 7548
      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:7509,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:7524,10'
          Dst:             strcmp
        - Src:             'fsio.c:7525,24'
          Dst:             strlen
        - Src:             'fsio.c:7529,15'
          Dst:             dir_realpath
        - Src:             'fsio.c:7533,19'
          Dst:             pstrcat
        - Src:             'fsio.c:7547,3'
          Dst:             qsort
        - Src:             'fsio.c:7547,3'
          Dst:             fs_cmp
    - functionName:    fs_cmp
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1242
      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:1241,10'
          Dst:             strcmp
    - functionName:    pr_fsio_puts
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7470
      functionLinenumberEnd: 7478
      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:7473,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7477,33'
          Dst:             strlen
        - Src:             'fsio.c:7477,10'
          Dst:             pr_fsio_write
    - functionName:    pr_fsio_write
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5435
      functionLinenumberEnd: 5458
      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:5441,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5453,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_is_nfs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7420
      functionLinenumberEnd: 7468
      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:7426,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7430,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7431,7'
          Dst:             statfs
        - Src:             'fsio.c:7432,18'
          Dst:             __errno_location
        - Src:             'fsio.c:7435,13'
          Dst:             strerror
        - Src:             'fsio.c:7434,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7437,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7450,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7456,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: 7290
      functionLinenumberEnd: 7343
      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: 7286
      functionLinenumberEnd: 7287
      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:7287,10'
          Dst:             fs_getsize
    - functionName:    fs_getsize
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7072
      functionLinenumberEnd: 7263
      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:7093,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7098,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7101,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7105,11'
          Dst:             statvfs
        - Src:             'fsio.c:7108,11'
          Dst:             fstatvfs
        - Src:             'fsio.c:7112,18'
          Dst:             __errno_location
        - Src:             'fsio.c:7116,15'
          Dst:             strerror
        - Src:             'fsio.c:7115,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7120,13'
          Dst:             strerror
        - Src:             'fsio.c:7119,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7123,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: 7282
      functionLinenumberEnd: 7283
      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:7283,10'
          Dst:             fs_getsize
    - functionName:    pr_fs_getsize
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7267
      functionLinenumberEnd: 7277
      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:7271,9'
          Dst:             pr_fs_getsize2
        - Src:             'fsio.c:7273,5'
          Dst:             __errno_location
    - functionName:    pr_fs_get_usable_fd2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7020
      functionLinenumberEnd: 7045
      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:7024,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7035,12'
          Dst:             pr_fs_get_usable_fd
        - Src:             'fsio.c:7037,12'
          Dst:             close
    - functionName:    pr_fs_get_usable_fd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6952
      functionLinenumberEnd: 7018
      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:6966,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6968,18'
          Dst:             dup
        - Src:             'fsio.c:6971,21'
          Dst:             __errno_location
        - Src:             'fsio.c:6975,9'
          Dst:             close
        - Src:             'fsio.c:6979,7'
          Dst:             __errno_location
        - Src:             'fsio.c:7002,9'
          Dst:             close
        - Src:             'fsio.c:7007,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7013,12'
          Dst:             close
    - functionName:    pr_fs_close_extra_fds
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6887
      functionLinenumberEnd: 6938
      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:6899,7'
          Dst:             getrlimit
        - Src:             'fsio.c:6935,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6936,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: 6827
      functionLinenumberEnd: 6883
      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:6834,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6839,10'
          Dst:             pr_fsio_gets
        - Src:             'fsio.c:6840,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6842,13'
          Dst:             strlen
        - Src:             'fsio.c:6859,37'
          Dst:             __ctype_b_loc
    - functionName:    pr_fsio_gets
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6724
      functionLinenumberEnd: 6818
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          371
      EdgeCount:       73
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_fsio_read
        - pr_signals_handle
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6733,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6745,18'
          Dst:             pcalloc
        - Src:             'fsio.c:6746,45'
          Dst:             pcalloc
        - Src:             'fsio.c:6755,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6760,16'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:6784,7'
          Dst:             pr_signals_handle
    - functionName:    pr_fsio_read
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5353
      functionLinenumberEnd: 5377
      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:5360,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5372,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_getpipebuf
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6685
      functionLinenumberEnd: 6722
      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:6690,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6695,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6720,9'
          Dst:             palloc
    - functionName:    pr_fsio_chroot_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6663
      functionLinenumberEnd: 6682
      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:6666,9'
          Dst:             pr_fsio_chroot
        - Src:             'fsio.c:6668,18'
          Dst:             __errno_location
        - Src:             'fsio.c:6672,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:6673,11'
          Dst:             pr_error_explain_chroot
        - Src:             'fsio.c:6674,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:6679,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chroot
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6563
      functionLinenumberEnd: 6661
      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:6568,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6572,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:6584,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6587,12'
          Dst:             __errno_location
        - Src:             'fsio.c:6595,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:6596,29'
          Dst:             make_array
        - Src:             'fsio.c:6599,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:6606,38'
          Dst:             strlen
        - Src:             'fsio.c:6606,11'
          Dst:             strncmp
        - Src:             'fsio.c:6607,44'
          Dst:             strlen
        - Src:             'fsio.c:6608,11'
          Dst:             strlen
        - Src:             'fsio.c:6608,33'
          Dst:             strlen
        - Src:             'fsio.c:6611,22'
          Dst:             push_array
        - Src:             'fsio.c:6625,41'
          Dst:             strlen
        - Src:             'fsio.c:6625,11'
          Dst:             strncmp
        - Src:             'fsio.c:6628,50'
          Dst:             strlen
        - Src:             'fsio.c:6629,11'
          Dst:             strlen
        - Src:             'fsio.c:6629,36'
          Dst:             strlen
        - Src:             'fsio.c:6634,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6636,50'
          Dst:             strlen
        - Src:             'fsio.c:6637,13'
          Dst:             strlen
        - Src:             'fsio.c:6637,37'
          Dst:             strlen
        - Src:             'fsio.c:6644,22'
          Dst:             push_array
        - Src:             'fsio.c:6648,5'
          Dst:             qsort
        - Src:             'fsio.c:6648,5'
          Dst:             fs_cmp
        - Src:             'fsio.c:6652,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:6659,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_lsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6494
      functionLinenumberEnd: 6526
      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:6501,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6506,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6510,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6522,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_setxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6459
      functionLinenumberEnd: 6491
      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:6466,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6471,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6475,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6487,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6428
      functionLinenumberEnd: 6456
      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:6435,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6440,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6452,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6394
      functionLinenumberEnd: 6426
      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:6401,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6406,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6410,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6422,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_removexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6360
      functionLinenumberEnd: 6392
      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:6367,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6372,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6376,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6388,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_llistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6296
      functionLinenumberEnd: 6328
      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:6303,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6308,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6312,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6324,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6262
      functionLinenumberEnd: 6294
      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:6269,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6274,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6278,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6290,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6197
      functionLinenumberEnd: 6229
      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:6204,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6209,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6213,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6225,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_getxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6162
      functionLinenumberEnd: 6194
      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:6169,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6174,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6178,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6190,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_realpath
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6132
      functionLinenumberEnd: 6159
      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:6138,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6142,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6154,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fsync
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6105
      functionLinenumberEnd: 6130
      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:6110,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6122,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6126,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_clear_cache2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1763
      functionLinenumberEnd: 1840
      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:    64
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1766,10'
          Dst:             pr_event_generate
        - Src:             'fsio.c:1768,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1769,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1783,7'
          Dst:             sstrcat
        - Src:             'fsio.c:1786,11'
          Dst:             strncmp
        - Src:             'fsio.c:1787,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1791,11'
          Dst:             strncmp
        - Src:             'fsio.c:1792,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1796,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:1799,5'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:1803,18'
          Dst:             pr_table_exists
        - Src:             'fsio.c:1807,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1809,16'
          Dst:             xaset_remove
        - Src:             'fsio.c:1810,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:1813,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1818,19'
          Dst:             pr_table_exists
        - Src:             'fsio.c:1822,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1824,16'
          Dst:             xaset_remove
        - Src:             'fsio.c:1825,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:1828,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1835,5'
          Dst:             pr_fs_statcache_reset
    - functionName:    pr_fs_statcache_reset
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1738
      functionLinenumberEnd: 1751
      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:1739,3'
          Dst:             pr_fs_statcache_free
        - Src:             'fsio.c:1742,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:1743,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:1746,24'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:1747,24'
          Dst:             xaset_create
        - Src:             'fsio.c:1749,25'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:1750,25'
          Dst:             xaset_create
    - functionName:    pr_fs_statcache_free
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1701
      functionLinenumberEnd: 1736
      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:1705,12'
          Dst:             pr_table_count
        - Src:             'fsio.c:1706,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1709,5'
          Dst:             pr_table_empty
        - Src:             'fsio.c:1710,5'
          Dst:             pr_table_free
        - Src:             'fsio.c:1718,12'
          Dst:             pr_table_count
        - Src:             'fsio.c:1719,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1722,5'
          Dst:             pr_table_empty
        - Src:             'fsio.c:1723,5'
          Dst:             pr_table_free
        - Src:             'fsio.c:1733,5'
          Dst:             destroy_pool
    - functionName:    pr_fsio_futimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6077
      functionLinenumberEnd: 6103
      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:6083,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6095,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6099,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_utimes_with_root
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6017
      functionLinenumberEnd: 6075
      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:6021,9'
          Dst:             pr_fsio_utimes
        - Src:             'fsio.c:6022,12'
          Dst:             __errno_location
        - Src:             'fsio.c:6033,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:6034,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:6035,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6062,5'
          Dst:             pr_signals_block
        - Src:             'fsio.c:6063,5'
          Dst:             pr_privs_root
        - Src:             'fsio.c:6064,11'
          Dst:             pr_fsio_utimes
        - Src:             'fsio.c:6065,5'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:6066,5'
          Dst:             pr_signals_unblock
        - Src:             'fsio.c:6073,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_utimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5978
      functionLinenumberEnd: 6008
      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:5984,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5988,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6000,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6004,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_faccess
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5957
      functionLinenumberEnd: 5976
      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:5961,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5973,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5931
      functionLinenumberEnd: 5954
      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:5935,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5939,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5951,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lchown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5908
      functionLinenumberEnd: 5927
      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:5911,9'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:5913,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5917,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5918,11'
          Dst:             pr_error_explain_lchown
        - Src:             'fsio.c:5919,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5924,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_lchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5876
      functionLinenumberEnd: 5905
      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:5881,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5885,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5897,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5901,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_fchown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5848
      functionLinenumberEnd: 5873
      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:5851,9'
          Dst:             pr_fsio_fchown
        - Src:             'fsio.c:5853,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5863,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5864,11'
          Dst:             pr_error_explain_fchown
        - Src:             'fsio.c:5865,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5870,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5820
      functionLinenumberEnd: 5845
      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:5825,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5837,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5841,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_chown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5798
      functionLinenumberEnd: 5817
      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:5801,9'
          Dst:             pr_fsio_chown
        - Src:             'fsio.c:5803,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5807,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5808,11'
          Dst:             pr_error_explain_chown
        - Src:             'fsio.c:5809,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5814,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5766
      functionLinenumberEnd: 5795
      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:5771,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5775,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5787,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5791,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_fchmod_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5738
      functionLinenumberEnd: 5763
      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:5741,9'
          Dst:             pr_fsio_fchmod
        - Src:             'fsio.c:5743,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5753,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5754,11'
          Dst:             pr_error_explain_fchmod
        - Src:             'fsio.c:5755,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5760,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fchmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5710
      functionLinenumberEnd: 5735
      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:5715,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5727,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5731,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_chmod_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5688
      functionLinenumberEnd: 5707
      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:5691,9'
          Dst:             pr_fsio_chmod
        - Src:             'fsio.c:5693,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5697,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5698,11'
          Dst:             pr_error_explain_chmod
        - Src:             'fsio.c:5699,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5704,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5656
      functionLinenumberEnd: 5685
      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:5661,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5665,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5677,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5681,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_ftruncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5592
      functionLinenumberEnd: 5623
      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:5597,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5609,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5613,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_link
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5513
      functionLinenumberEnd: 5558
      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:5519,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5523,15'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5528,13'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5536,7'
          Dst:             __errno_location
        - Src:             'fsio.c:5550,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5554,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_lseek
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5489
      functionLinenumberEnd: 5511
      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:5494,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5506,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_write_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5461
      functionLinenumberEnd: 5486
      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:5464,9'
          Dst:             pr_fsio_write
        - Src:             'fsio.c:5466,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5476,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5477,11'
          Dst:             pr_error_explain_write
        - Src:             'fsio.c:5478,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5483,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_pwrite
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5409
      functionLinenumberEnd: 5433
      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:5415,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5427,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_read_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5380
      functionLinenumberEnd: 5405
      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:5383,9'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:5385,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5395,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5396,11'
          Dst:             pr_error_explain_read
        - Src:             'fsio.c:5397,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5402,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_pread
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5326
      functionLinenumberEnd: 5351
      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:5333,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5345,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_close_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5297
      functionLinenumberEnd: 5323
      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:5300,9'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:5302,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5308,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5314,11'
          Dst:             pr_error_explain_close
        - Src:             'fsio.c:5315,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5320,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_close
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5255
      functionLinenumberEnd: 5295
      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:    58
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5260,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5272,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5275,12'
          Dst:             __errno_location
        - Src:             'fsio.c:5278,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5286,5'
          Dst:             pr_memscrub
        - Src:             'fsio.c:5290,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5293,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_open_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5233
      functionLinenumberEnd: 5252
      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:5236,8'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:5238,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5242,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5243,11'
          Dst:             pr_error_explain_open
        - Src:             'fsio.c:5244,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5249,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_open
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5172
      functionLinenumberEnd: 5230
      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:5178,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5182,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5188,14'
          Dst:             make_sub_pool
        - Src:             'fsio.c:5189,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:5191,8'
          Dst:             pcalloc
        - Src:             'fsio.c:5193,17'
          Dst:             pstrdup
        - Src:             'fsio.c:5205,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5209,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5211,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5213,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5219,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5222,7'
          Dst:             fcntl
        - Src:             'fsio.c:5223,9'
          Dst:             __errno_location
        - Src:             'fsio.c:5225,29'
          Dst:             __errno_location
        - Src:             'fsio.c:5225,20'
          Dst:             strerror
        - Src:             'fsio.c:5224,7'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_open_canon
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5111
      functionLinenumberEnd: 5170
      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:5118,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5122,8'
          Dst:             lookup_file_canon_fs
        - Src:             'fsio.c:5128,14'
          Dst:             make_sub_pool
        - Src:             'fsio.c:5129,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:5131,8'
          Dst:             pcalloc
        - Src:             'fsio.c:5133,17'
          Dst:             pstrdup
        - Src:             'fsio.c:5145,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5149,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5151,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5153,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5159,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5162,7'
          Dst:             fcntl
        - Src:             'fsio.c:5163,9'
          Dst:             __errno_location
        - Src:             'fsio.c:5165,29'
          Dst:             __errno_location
        - Src:             'fsio.c:5165,20'
          Dst:             strerror
        - Src:             'fsio.c:5164,7'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_unlink_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5089
      functionLinenumberEnd: 5108
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5092,9'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:5094,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5098,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5099,11'
          Dst:             pr_error_explain_unlink
        - Src:             'fsio.c:5100,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5105,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_unlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5058
      functionLinenumberEnd: 5087
      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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5063,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5067,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5079,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5083,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_rename_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5036
      functionLinenumberEnd: 5055
      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:5039,9'
          Dst:             pr_fsio_rename
        - Src:             'fsio.c:5041,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5045,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5046,11'
          Dst:             pr_error_explain_rename
        - Src:             'fsio.c:5047,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5052,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rename
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4987
      functionLinenumberEnd: 5033
      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:4993,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4997,13'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5002,11'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5010,7'
          Dst:             __errno_location
        - Src:             'fsio.c:5024,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5028,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5029,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_globfree
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4981
      functionLinenumberEnd: 4985
      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:4983,5'
          Dst:             globfree
    - functionName:    pr_fs_glob
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4962
      functionLinenumberEnd: 4979
      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:4966,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4978,10'
          Dst:             glob
    - functionName:    pr_fsio_closedir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4124
      functionLinenumberEnd: 4149
      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:4129,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4133,8'
          Dst:             find_opendir
        - Src:             'fsio.c:4145,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_readdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4151
      functionLinenumberEnd: 4176
      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:4156,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4160,8'
          Dst:             find_opendir
        - Src:             'fsio.c:4172,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_opendir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3991
      functionLinenumberEnd: 4075
      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:3998,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4002,7'
          Dst:             strchr
        - Src:             'fsio.c:4003,18'
          Dst:             pr_fs_getcwd
        - Src:             'fsio.c:4003,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:4009,9'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:4013,10'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:4023,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4034,15'
          Dst:             make_sub_pool
        - Src:             'fsio.c:4035,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:4037,10'
          Dst:             pcalloc
        - Src:             'fsio.c:4041,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4045,5'
          Dst:             sys_closedir
        - Src:             'fsio.c:4046,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4061,7'
          Dst:             pr_signals_handle
    - functionName:    pr_fsio_lstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4880
      functionLinenumberEnd: 4904
      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:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4885,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4889,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4901,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4903,10'
          Dst:             cache_stat
    - functionName:    pr_fs_getcwd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2711
      functionLinenumberEnd: 2712
      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: 4077
      functionLinenumberEnd: 4121
      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:4104,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:4118,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_lstat_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4907
      functionLinenumberEnd: 4926
      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:4910,9'
          Dst:             pr_fsio_lstat
        - Src:             'fsio.c:4912,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4916,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4917,11'
          Dst:             pr_error_explain_lstat
        - Src:             'fsio.c:4918,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4923,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_stat_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4833
      functionLinenumberEnd: 4852
      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:4836,9'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:4838,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4842,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4843,11'
          Dst:             pr_error_explain_stat
        - Src:             'fsio.c:4844,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4849,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rmdir_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4784
      functionLinenumberEnd: 4803
      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:4787,9'
          Dst:             pr_fsio_rmdir
        - Src:             'fsio.c:4789,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4793,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4794,11'
          Dst:             pr_error_explain_rmdir
        - Src:             'fsio.c:4795,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4800,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rmdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4753
      functionLinenumberEnd: 4782
      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:4758,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4762,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:4774,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4778,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    schmod_dir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4308
      functionLinenumberEnd: 4447
      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:4323,8'
          Dst:             open
        - Src:             'fsio.c:4324,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4328,53'
          Dst:             strerror
        - Src:             'fsio.c:4327,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4329,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4333,9'
          Dst:             fstat
        - Src:             'fsio.c:4335,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4337,12'
          Dst:             close
        - Src:             'fsio.c:4340,54'
          Dst:             strerror
        - Src:             'fsio.c:4339,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4341,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4349,12'
          Dst:             close
        - Src:             'fsio.c:4352,52'
          Dst:             strerror
        - Src:             'fsio.c:4351,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4357,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4361,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4375,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4379,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4385,5'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4388,9'
          Dst:             fchmod
        - Src:             'fsio.c:4389,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4399,11'
          Dst:             chmod
        - Src:             'fsio.c:4400,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4404,5'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4408,10'
          Dst:             close
        - Src:             'fsio.c:4435,22'
          Dst:             strerror
        - Src:             'fsio.c:4433,7'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4441,7'
          Dst:             strerror
        - Src:             'fsio.c:4439,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4442,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_smkdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4455
      functionLinenumberEnd: 4751
      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:4463,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4469,5'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4469,25'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4467,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4472,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:4516,11'
          Dst:             strrchr
        - Src:             'fsio.c:4518,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4524,17'
          Dst:             pstrndup
        - Src:             'fsio.c:4531,11'
          Dst:             lstat
        - Src:             'fsio.c:4533,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4537,9'
          Dst:             strerror
        - Src:             'fsio.c:4535,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4540,9'
          Dst:             strerror
        - Src:             'fsio.c:4538,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4542,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4548,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4561,12'
          Dst:             pcalloc
        - Src:             'fsio.c:4562,5'
          Dst:             pr_snprintf
        - Src:             'fsio.c:4568,17'
          Dst:             mkdtemp
        - Src:             'fsio.c:4570,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4574,9'
          Dst:             strerror
        - Src:             'fsio.c:4572,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4577,9'
          Dst:             strerror
        - Src:             'fsio.c:4575,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4579,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4584,11'
          Dst:             pr_fsio_mkdir
        - Src:             'fsio.c:4586,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4590,15'
          Dst:             strerror
        - Src:             'fsio.c:4588,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4592,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4596,17'
          Dst:             pstrdup
        - Src:             'fsio.c:4621,17'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4626,19'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4645,11'
          Dst:             schmod_dir
        - Src:             'fsio.c:4646,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4655,15'
          Dst:             schmod_dir
        - Src:             'fsio.c:4656,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4662,9'
          Dst:             strerror
        - Src:             'fsio.c:4661,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4664,14'
          Dst:             rmdir
        - Src:             'fsio.c:4666,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4673,7'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4676,11'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:4677,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4680,7'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4685,9'
          Dst:             strerror
        - Src:             'fsio.c:4684,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4690,22'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4690,42'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4689,9'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4694,22'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4693,9'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4700,7'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4703,11'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:4704,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4707,7'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4712,51'
          Dst:             strerror
        - Src:             'fsio.c:4711,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4716,51'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4715,7'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4724,11'
          Dst:             rename
        - Src:             'fsio.c:4726,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4729,15'
          Dst:             strerror
        - Src:             'fsio.c:4728,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4731,14'
          Dst:             rmdir
        - Src:             'fsio.c:4744,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4749,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: 4178
      functionLinenumberEnd: 4232
      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:4184,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4188,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:4201,15'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4206,17'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4213,20'
          Dst:             umask
        - Src:             'fsio.c:4217,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4220,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4223,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:4227,12'
          Dst:             umask
        - Src:             'fsio.c:4230,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_set_use_mkdtemp
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4275
      functionLinenumberEnd: 4291
      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:4280,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_set_options
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4266
      functionLinenumberEnd: 4272
      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: 4257
      functionLinenumberEnd: 4263
      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: 4235
      functionLinenumberEnd: 4254
      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:4238,9'
          Dst:             pr_fsio_mkdir
        - Src:             'fsio.c:4240,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4244,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4245,11'
          Dst:             pr_error_explain_mkdir
        - Src:             'fsio.c:4246,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4251,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chdir_canon
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3900
      functionLinenumberEnd: 3943
      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:3906,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3910,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:3915,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3927,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3935,8'
          Dst:             pr_fs_virtual_path
        - Src:             'fsio.c:3938,8'
          Dst:             sstrncpy
    - functionName:    pr_fs_join_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3721
      functionLinenumberEnd: 3750
      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:3729,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3735,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3740,10'
          Dst:             pstrdup
        - Src:             'fsio.c:3746,12'
          Dst:             pdircat
    - functionName:    pr_fs_split_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3628
      functionLinenumberEnd: 3719
      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:3636,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3640,13'
          Dst:             strlen
        - Src:             'fsio.c:3642,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3652,9'
          Dst:             pcalloc
        - Src:             'fsio.c:3654,9'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:3657,18'
          Dst:             __errno_location
        - Src:             'fsio.c:3660,7'
          Dst:             strerror
        - Src:             'fsio.c:3659,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3661,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3665,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3671,12'
          Dst:             strlen
        - Src:             'fsio.c:3674,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3676,18'
          Dst:             make_array
        - Src:             'fsio.c:3677,43'
          Dst:             pstrdup
        - Src:             'fsio.c:3677,17'
          Dst:             push_array
        - Src:             'fsio.c:3682,16'
          Dst:             pr_str_text_to_array
        - Src:             'fsio.c:3684,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3687,9'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:3698,9'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3711,22'
          Dst:             make_array
        - Src:             'fsio.c:3712,47'
          Dst:             pstrdup
        - Src:             'fsio.c:3712,17'
          Dst:             push_array
        - Src:             'fsio.c:3714,5'
          Dst:             array_cat
    - functionName:    pr_fs_encode_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3566
      functionLinenumberEnd: 3626
      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:3620,5'
          Dst:             __errno_location
    - functionName:    pr_fs_decode_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3562
      functionLinenumberEnd: 3563
      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:3563,10'
          Dst:             pr_fs_decode_path2
    - functionName:    pr_fs_decode_path2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3491
      functionLinenumberEnd: 3560
      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:3554,5'
          Dst:             __errno_location
    - functionName:    pr_fs_use_encoding
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3478
      functionLinenumberEnd: 3489
      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:3483,5'
          Dst:             __errno_location
    - functionName:    pr_fs_getvwd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2715
      functionLinenumberEnd: 2716
      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: 2588
      functionLinenumberEnd: 2605
      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:2592,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2597,8'
          Dst:             pr_remove_fs
        - Src:             'fsio.c:2599,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:2603,3'
          Dst:             __errno_location
    - functionName:    pr_remove_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2584
      functionLinenumberEnd: 2585
      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:2585,10'
          Dst:             pr_unmount_fs
    - functionName:    pr_unmount_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2495
      functionLinenumberEnd: 2582
      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:2501,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2507,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2516,9'
          Dst:             strcmp
        - Src:             'fsio.c:2517,17'
          Dst:             strcmp
        - Src:             'fsio.c:2535,11'
          Dst:             destroy_pool
        - Src:             'fsio.c:2543,20'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2544,19'
          Dst:             make_array
        - Src:             'fsio.c:2546,9'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2552,15'
          Dst:             strcmp
        - Src:             'fsio.c:2553,28'
          Dst:             push_array
        - Src:             'fsio.c:2557,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:2580,3'
          Dst:             __errno_location
    - functionName:    pr_register_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2367
      functionLinenumberEnd: 2368
      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:2368,10'
          Dst:             pr_register_fs2
    - functionName:    pr_register_fs2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2277
      functionLinenumberEnd: 2365
      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:2285,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2290,8'
          Dst:             pr_create_fs
        - Src:             'fsio.c:2291,12'
          Dst:             __errno_location
        - Src:             'fsio.c:2295,16'
          Dst:             __errno_location
        - Src:             'fsio.c:2295,7'
          Dst:             strerror
        - Src:             'fsio.c:2294,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2296,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2307,15'
          Dst:             pr_get_fs
        - Src:             'fsio.c:2309,21'
          Dst:             pstrcat
        - Src:             'fsio.c:2353,7'
          Dst:             pr_insert_fs
        - Src:             'fsio.c:2354,14'
          Dst:             __errno_location
        - Src:             'fsio.c:2356,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2359,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:2360,5'
          Dst:             __errno_location
    - functionName:    pr_insert_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2401
      functionLinenumberEnd: 2493
      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:2406,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2411,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2412,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2414,14'
          Dst:             make_array
        - Src:             'fsio.c:2421,5'
          Dst:             pr_fs_clean_path
        - Src:             'fsio.c:2428,14'
          Dst:             strlen
        - Src:             'fsio.c:2429,20'
          Dst:             strlen
        - Src:             'fsio.c:2440,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2444,19'
          Dst:             pstrdup
        - Src:             'fsio.c:2455,11'
          Dst:             strcmp
        - Src:             'fsio.c:2459,13'
          Dst:             strcmp
        - Src:             'fsio.c:2460,11'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2462,11'
          Dst:             __errno_location
        - Src:             'fsio.c:2478,18'
          Dst:             push_array
        - Src:             'fsio.c:2484,5'
          Dst:             qsort
        - Src:             'fsio.c:2484,5'
          Dst:             fs_cmp
    - functionName:    pr_fsio_symlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5560
      functionLinenumberEnd: 5590
      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:5566,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5570,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5582,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5586,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_copy_symlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2237
      functionLinenumberEnd: 2274
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_fsio_readlink
        - pr_fsio_symlink
        - pr_log_pri
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2246,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2251,9'
          Dst:             pr_fsio_readlink
        - Src:             'fsio.c:2253,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2256,7'
          Dst:             strerror
        - Src:             'fsio.c:2255,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2258,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2263,7'
          Dst:             pr_fsio_symlink
        - Src:             'fsio.c:2264,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2267,12'
          Dst:             strerror
        - Src:             'fsio.c:2266,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2269,5'
          Dst:             __errno_location
    - functionName:    pr_fs_copy_file
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2233
      functionLinenumberEnd: 2234
      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:2234,10'
          Dst:             pr_fs_copy_file2
    - functionName:    pr_fs_copy_file2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1849
      functionLinenumberEnd: 2231
      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:1861,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1870,12'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:1872,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1875,31'
          Dst:             strerror
        - Src:             'fsio.c:1874,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1877,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1887,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1889,49'
          Dst:             __errno_location
        - Src:             'fsio.c:1889,40'
          Dst:             strerror
        - Src:             'fsio.c:1888,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1895,5'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1898,7'
          Dst:             strerror
        - Src:             'fsio.c:1897,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1900,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1904,7'
          Dst:             pr_fsio_set_block
        - Src:             'fsio.c:1906,66'
          Dst:             __errno_location
        - Src:             'fsio.c:1906,57'
          Dst:             strerror
        - Src:             'fsio.c:1905,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1913,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:1914,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:1918,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1921,62'
          Dst:             strerror
        - Src:             'fsio.c:1920,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1923,7'
          Dst:             __errno_location
        - Src:             'fsio.c:1928,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:1934,12'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:1936,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1938,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1941,31'
          Dst:             strerror
        - Src:             'fsio.c:1940,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1943,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1947,7'
          Dst:             pr_fsio_set_block
        - Src:             'fsio.c:1949,66'
          Dst:             __errno_location
        - Src:             'fsio.c:1949,57'
          Dst:             strerror
        - Src:             'fsio.c:1948,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1953,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1954,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1957,31'
          Dst:             strerror
        - Src:             'fsio.c:1956,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1959,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1960,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1965,13'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:1967,69'
          Dst:             __errno_location
        - Src:             'fsio.c:1967,60'
          Dst:             strerror
        - Src:             'fsio.c:1966,11'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1972,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1976,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1984,9'
          Dst:             strcmp
        - Src:             'fsio.c:1990,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1991,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2001,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2002,5'
          Dst:             exit
        - Src:             'fsio.c:2008,5'
          Dst:             pr_fsio_truncate
        - Src:             'fsio.c:2012,17'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:2016,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:2023,13'
          Dst:             pr_fsio_write
        - Src:             'fsio.c:2025,22'
          Dst:             __errno_location
        - Src:             'fsio.c:2029,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:2033,16'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2034,16'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2039,17'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:2041,73'
          Dst:             __errno_location
        - Src:             'fsio.c:2041,64'
          Dst:             strerror
        - Src:             'fsio.c:2040,15'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2047,11'
          Dst:             strerror
        - Src:             'fsio.c:2046,9'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2050,9'
          Dst:             __errno_location
        - Src:             'fsio.c:2058,9'
          Dst:             copy_progress_cb
        - Src:             'fsio.c:2168,7'
          Dst:             pr_fsio_flistxattr
        - Src:             'fsio.c:2179,15'
          Dst:             pr_fsio_fgetxattr
        - Src:             'fsio.c:2184,15'
          Dst:             palloc
        - Src:             'fsio.c:2185,14'
          Dst:             pr_fsio_fgetxattr
        - Src:             'fsio.c:2187,16'
          Dst:             pr_fsio_fsetxattr
        - Src:             'fsio.c:2190,15'
          Dst:             __errno_location
        - Src:             'fsio.c:2193,67'
          Dst:             __errno_location
        - Src:             'fsio.c:2193,58'
          Dst:             strerror
        - Src:             'fsio.c:2191,13'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2201,10'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2207,5'
          Dst:             copy_progress_cb
        - Src:             'fsio.c:2210,9'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2212,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2217,13'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:2219,69'
          Dst:             __errno_location
        - Src:             'fsio.c:2219,60'
          Dst:             strerror
        - Src:             'fsio.c:2218,11'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2225,7'
          Dst:             strerror
        - Src:             'fsio.c:2224,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2227,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4855
      functionLinenumberEnd: 4878
      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:4861,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4873,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_set_block
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7480
      functionLinenumberEnd: 7495
      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:7484,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7488,11'
          Dst:             fcntl
        - Src:             'fsio.c:7493,9'
          Dst:             fcntl
    - functionName:    pr_fsio_truncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5625
      functionLinenumberEnd: 5654
      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:5630,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5634,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5646,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5650,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    copy_progress_cb
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 197
      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:180,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:183,16'
          Dst:             __errno_location
        - Src:             'fsio.c:183,7'
          Dst:             strerror
        - Src:             'fsio.c:182,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:186,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:189,63'
          Dst:             __errno_location
        - Src:             'fsio.c:189,54'
          Dst:             strerror
        - Src:             'fsio.c:188,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:192,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:195,60'
          Dst:             __errno_location
        - Src:             'fsio.c:195,51'
          Dst:             strerror
        - Src:             'fsio.c:194,5'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_flistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6330
      functionLinenumberEnd: 6358
      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:6337,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6342,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6354,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6232
      functionLinenumberEnd: 6260
      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:6239,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6244,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6256,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6529
      functionLinenumberEnd: 6557
      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:6536,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6541,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6553,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_clear_cache
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1842
      functionLinenumberEnd: 1844
      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:1843,10'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_statcache_set_policy
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1754
      functionLinenumberEnd: 1760
      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: 1682
      functionLinenumberEnd: 1694
      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:1689,3'
          Dst:             pr_vsnprintf
        - Src:             'fsio.c:1693,10'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_statcache_dump
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1696
      functionLinenumberEnd: 1699
      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:1697,3'
          Dst:             pr_table_dump
        - Src:             'fsio.c:1697,3'
          Dst:             statcache_dumpf
        - Src:             'fsio.c:1698,3'
          Dst:             pr_table_dump
        - Src:             'fsio.c:1698,3'
          Dst:             statcache_dumpf
    - functionName:    add_log_ts
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 511
      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:497,3'
          Dst:             gettimeofday
        - Src:             'log.c:498,8'
          Dst:             pr_localtime
        - Src:             'log.c:503,9'
          Dst:             strftime
        - Src:             'log.c:509,10'
          Dst:             pr_snprintf
    - functionName:    init_log
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1086
      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:1078,7'
          Dst:             gethostname
        - Src:             'log.c:1079,5'
          Dst:             sstrncpy
        - Src:             'log.c:1082,37'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'log.c:1082,3'
          Dst:             sstrncpy
        - Src:             'log.c:1085,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: 469
      functionLinenumberEnd: 477
      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:470,10'
          Dst:             close
        - Src:             'log.c:473,10'
          Dst:             pr_closelog
    - functionName:    pr_log_stacktrace
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1072
      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:1017,12'
          Dst:             pr_log_writefile
        - Src:             'log.c:1020,12'
          Dst:             pr_log_pri
        - Src:             'log.c:1023,13'
          Dst:             backtrace
        - Src:             'log.c:1027,18'
          Dst:             __errno_location
        - Src:             'log.c:1027,9'
          Dst:             strerror
        - Src:             'log.c:1026,14'
          Dst:             pr_log_writefile
        - Src:             'log.c:1031,18'
          Dst:             __errno_location
        - Src:             'log.c:1031,9'
          Dst:             strerror
        - Src:             'log.c:1030,14'
          Dst:             pr_log_pri
        - Src:             'log.c:1037,15'
          Dst:             backtrace_symbols
        - Src:             'log.c:1043,18'
          Dst:             pr_log_writefile
        - Src:             'log.c:1046,18'
          Dst:             pr_log_pri
        - Src:             'log.c:1056,61'
          Dst:             __errno_location
        - Src:             'log.c:1056,52'
          Dst:             strerror
        - Src:             'log.c:1055,16'
          Dst:             pr_log_writefile
        - Src:             'log.c:1060,61'
          Dst:             __errno_location
        - Src:             'log.c:1060,52'
          Dst:             strerror
        - Src:             'log.c:1059,16'
          Dst:             pr_log_pri
        - Src:             'log.c:1066,12'
          Dst:             pr_log_writefile
        - Src:             'log.c:1069,12'
          Dst:             pr_log_pri
    - functionName:    pr_log_writefile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 418
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:409,5'
          Dst:             __errno_location
        - Src:             'log.c:414,9'
          Dst:             pr_log_vwritefile
    - functionName:    pr_log_pri
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 803
      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:796,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:802,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: 513
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         125
      ICount:          745
      EdgeCount:       169
      CyclomaticComplexity: 46
      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:525,19'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'log.c:526,19'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'log.c:531,13'
          Dst:             pr_snprintf
        - Src:             'log.c:542,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'log.c:540,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:572,13'
          Dst:             pr_snprintf
        - Src:             'log.c:577,43'
          Dst:             getpid
        - Src:             'log.c:591,13'
          Dst:             pr_snprintf
        - Src:             'log.c:604,13'
          Dst:             pr_snprintf
        - Src:             'log.c:616,5'
          Dst:             pr_log_event_generate
        - Src:             'log.c:619,5'
          Dst:             fprintf
        - Src:             'log.c:620,5'
          Dst:             fflush
        - Src:             'log.c:626,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:627,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:633,11'
          Dst:             get_param_ptr
        - Src:             'log.c:653,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:654,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:669,18'
          Dst:             make_sub_pool
        - Src:             'log.c:670,7'
          Dst:             pr_pool_tag
        - Src:             'log.c:672,13'
          Dst:             add_log_ts
        - Src:             'log.c:673,7'
          Dst:             destroy_pool
        - Src:             'log.c:683,13'
          Dst:             pr_snprintf
        - Src:             'log.c:688,43'
          Dst:             getpid
        - Src:             'log.c:702,13'
          Dst:             pr_snprintf
        - Src:             'log.c:715,13'
          Dst:             pr_snprintf
        - Src:             'log.c:727,5'
          Dst:             pr_log_event_generate
        - Src:             'log.c:745,12'
          Dst:             write
        - Src:             'log.c:746,11'
          Dst:             __errno_location
        - Src:             'log.c:747,9'
          Dst:             pr_signals_handle
        - Src:             'log.c:758,5'
          Dst:             strlen
        - Src:             'log.c:757,3'
          Dst:             pr_log_event_generate
        - Src:             'log.c:765,21'
          Dst:             pr_openlog
        - Src:             'log.c:768,49'
          Dst:             __errno_location
        - Src:             'log.c:768,40'
          Dst:             strerror
        - Src:             'log.c:767,14'
          Dst:             pr_trace_msg
        - Src:             'log.c:784,5'
          Dst:             pr_syslog
        - Src:             'log.c:787,5'
          Dst:             pr_syslog
    - functionName:    pr_log_event_generate
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 985
      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:965,5'
          Dst:             __errno_location
        - Src:             'log.c:969,7'
          Dst:             pr_log_event_listening
        - Src:             'log.c:970,5'
          Dst:             __errno_location
        - Src:             'log.c:974,16'
          Dst:             get_log_event_name
        - Src:             'log.c:983,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: 987
      functionLinenumberEnd: 1002
      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:991,16'
          Dst:             get_log_event_name
        - Src:             'log.c:996,9'
          Dst:             pr_event_listening
    - functionName:    get_log_event_name
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 956
      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:925,3'
          Branch Sides:    []
      Callsites:
        - Src:             'log.c:951,7'
          Dst:             __errno_location
    - functionName:    pr_log_vwritefile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 402
      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:339,5'
          Dst:             __errno_location
        - Src:             'log.c:343,14'
          Dst:             make_sub_pool
        - Src:             'log.c:344,3'
          Dst:             pr_pool_tag
        - Src:             'log.c:346,3'
          Dst:             gettimeofday
        - Src:             'log.c:347,8'
          Dst:             pr_localtime
        - Src:             'log.c:349,18'
          Dst:             __errno_location
        - Src:             'log.c:351,5'
          Dst:             destroy_pool
        - Src:             'log.c:352,5'
          Dst:             __errno_location
        - Src:             'log.c:357,9'
          Dst:             strftime
        - Src:             'log.c:364,9'
          Dst:             pr_snprintf
        - Src:             'log.c:369,49'
          Dst:             getpid
        - Src:             'log.c:368,9'
          Dst:             pr_snprintf
        - Src:             'log.c:374,9'
          Dst:             pr_vsnprintf
        - Src:             'log.c:389,3'
          Dst:             pr_log_event_generate
        - Src:             'log.c:390,3'
          Dst:             destroy_pool
        - Src:             'log.c:392,10'
          Dst:             write
        - Src:             'log.c:393,9'
          Dst:             __errno_location
        - Src:             'log.c:394,7'
          Dst:             pr_signals_handle
    - functionName:    pr_log_str2sysloglevel
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 891
      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:857,7'
          Dst:             strcasecmp
        - Src:             'log.c:861,7'
          Dst:             strcasecmp
        - Src:             'log.c:865,7'
          Dst:             strcasecmp
        - Src:             'log.c:869,7'
          Dst:             strcasecmp
        - Src:             'log.c:873,7'
          Dst:             strcasecmp
        - Src:             'log.c:877,7'
          Dst:             strcasecmp
        - Src:             'log.c:881,7'
          Dst:             strcasecmp
        - Src:             'log.c:885,7'
          Dst:             strcasecmp
        - Src:             'log.c:889,3'
          Dst:             __errno_location
    - functionName:    pr_log_set_options
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 849
      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: 841
      functionLinenumberEnd: 844
      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: 834
      functionLinenumberEnd: 837
      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: 826
      functionLinenumberEnd: 828
      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: 808
      functionLinenumberEnd: 820
      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:813,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:819,3'
          Dst:             log_write
    - functionName:    log_discard
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 489
      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: 483
      functionLinenumberEnd: 485
      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: 479
      functionLinenumberEnd: 480
      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: 420
      functionLinenumberEnd: 467
      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:429,5'
          Dst:             sstrncpy
        - Src:             'log.c:435,5'
          Dst:             pr_closelog
        - Src:             'log.c:437,21'
          Dst:             pr_openlog
        - Src:             'log.c:439,20'
          Dst:             __errno_location
        - Src:             'log.c:442,40'
          Dst:             strerror
        - Src:             'log.c:441,14'
          Dst:             pr_trace_msg
        - Src:             'log.c:443,7'
          Dst:             __errno_location
        - Src:             'log.c:449,13'
          Dst:             pr_fs_get_usable_fd
        - Src:             'log.c:451,16'
          Dst:             close
        - Src:             'log.c:456,12'
          Dst:             fcntl
        - Src:             'log.c:459,21'
          Dst:             pr_log_openfile
    - functionName:    pr_log_openfile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 326
      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:    6
      BranchProfiles:
        - Branch String:   'log.c:179,9'
          Branch Sides:    []
      Callsites:
        - Src:             'log.c:75,5'
          Dst:             __errno_location
        - Src:             'log.c:80,14'
          Dst:             make_sub_pool
        - Src:             'log.c:81,3'
          Dst:             pr_pool_tag
        - Src:             'log.c:82,8'
          Dst:             pstrdup
        - Src:             'log.c:84,9'
          Dst:             strrchr
        - Src:             'log.c:86,5'
          Dst:             pr_log_debug
        - Src:             'log.c:87,5'
          Dst:             destroy_pool
        - Src:             'log.c:89,5'
          Dst:             __errno_location
        - Src:             'log.c:100,7'
          Dst:             stat
        - Src:             'log.c:101,18'
          Dst:             __errno_location
        - Src:             'log.c:103,16'
          Dst:             __errno_location
        - Src:             'log.c:103,7'
          Dst:             strerror
        - Src:             'log.c:102,5'
          Dst:             pr_log_debug
        - Src:             'log.c:104,5'
          Dst:             destroy_pool
        - Src:             'log.c:106,5'
          Dst:             __errno_location
        - Src:             'log.c:112,5'
          Dst:             pr_log_debug
        - Src:             'log.c:113,5'
          Dst:             destroy_pool
        - Src:             'log.c:115,5'
          Dst:             __errno_location
        - Src:             'log.c:121,5'
          Dst:             pr_log_pri
        - Src:             'log.c:122,5'
          Dst:             destroy_pool
        - Src:             'log.c:133,24'
          Dst:             get_param_ptr
        - Src:             'log.c:166,15'
          Dst:             open
        - Src:             'log.c:169,11'
          Dst:             __errno_location
        - Src:             'log.c:170,9'
          Dst:             destroy_pool
        - Src:             'log.c:179,17'
          Dst:             __errno_location
        - Src:             'log.c:220,9'
          Dst:             destroy_pool
        - Src:             'log.c:228,9'
          Dst:             fstat
        - Src:             'log.c:234,7'
          Dst:             pr_log_debug
        - Src:             'log.c:237,7'
          Dst:             close
        - Src:             'log.c:239,7'
          Dst:             destroy_pool
        - Src:             'log.c:254,15'
          Dst:             open
        - Src:             'log.c:256,20'
          Dst:             __errno_location
        - Src:             'log.c:258,7'
          Dst:             destroy_pool
        - Src:             'log.c:259,7'
          Dst:             __errno_location
        - Src:             'log.c:267,7'
          Dst:             fstat
        - Src:             'log.c:268,18'
          Dst:             __errno_location
        - Src:             'log.c:271,7'
          Dst:             strerror
        - Src:             'log.c:270,5'
          Dst:             pr_log_debug
        - Src:             'log.c:273,12'
          Dst:             close
        - Src:             'log.c:275,5'
          Dst:             destroy_pool
        - Src:             'log.c:277,5'
          Dst:             __errno_location
        - Src:             'log.c:284,61'
          Dst:             strerror
        - Src:             'log.c:284,5'
          Dst:             pr_log_debug
        - Src:             'log.c:286,12'
          Dst:             close
        - Src:             'log.c:288,5'
          Dst:             destroy_pool
        - Src:             'log.c:290,5'
          Dst:             __errno_location
        - Src:             'log.c:298,11'
          Dst:             pr_fs_get_usable_fd
        - Src:             'log.c:301,27'
          Dst:             __errno_location
        - Src:             'log.c:301,18'
          Dst:             strerror
        - Src:             'log.c:300,7'
          Dst:             pr_log_debug
        - Src:             'log.c:304,7'
          Dst:             close
        - Src:             'log.c:309,7'
          Dst:             fcntl
        - Src:             'log.c:311,25'
          Dst:             __errno_location
        - Src:             'log.c:311,16'
          Dst:             strerror
        - Src:             'log.c:310,5'
          Dst:             pr_log_pri
        - Src:             'log.c:317,3'
          Dst:             pr_fs_fadvise
        - Src:             'log.c:321,10'
          Dst:             fd_set_block
        - Src:             'log.c:324,3'
          Dst:             destroy_pool
    - functionName:    pr_log_debug
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 920
      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:    480
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:901,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:902,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:913,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:919,3'
          Dst:             log_write
    - functionName:    fd_set_block
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 62
      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:59,11'
          Dst:             fcntl
        - Src:             'log.c:60,9'
          Dst:             fcntl
    - functionName:    find_server_ipbinds
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1400
      functionLinenumberEnd: 1420
      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:1408,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1412,21'
          Dst:             make_array
        - Src:             'bindings.c:1415,28'
          Dst:             push_array
    - functionName:    trace_ipbind_table
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1515
      functionLinenumberEnd: 1571
      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:1518,7'
          Dst:             pr_trace_get_level
        - Src:             'bindings.c:1522,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1526,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1532,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1536,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1539,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1541,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1540,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1542,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1544,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1551,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1556,11'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1558,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1559,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1561,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1563,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1565,11'
          Dst:             pr_trace_msg
    - functionName:    process_serveralias
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1513
      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:1450,14'
          Dst:             make_sub_pool
        - Src:             'bindings.c:1451,3'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:1454,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1457,15'
          Dst:             make_array
        - Src:             'bindings.c:1458,24'
          Dst:             push_array
        - Src:             'bindings.c:1461,15'
          Dst:             find_server_ipbinds
        - Src:             'bindings.c:1463,7'
          Dst:             destroy_pool
        - Src:             'bindings.c:1468,7'
          Dst:             find_config
        - Src:             'bindings.c:1474,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1476,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1481,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1484,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1487,13'
          Dst:             pr_namebind_create
        - Src:             'bindings.c:1491,15'
          Dst:             pr_namebind_open
        - Src:             'bindings.c:1495,22'
          Dst:             __errno_location
        - Src:             'bindings.c:1495,13'
          Dst:             strerror
        - Src:             'bindings.c:1493,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1499,13'
          Dst:             __errno_location
        - Src:             'bindings.c:1502,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1503,39'
          Dst:             __errno_location
        - Src:             'bindings.c:1503,30'
          Dst:             strerror
        - Src:             'bindings.c:1500,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1508,9'
          Dst:             find_config_next
        - Src:             'bindings.c:1511,3'
          Dst:             destroy_pool
    - functionName:    pr_ipbind_find
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 650
      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:622,5'
          Dst:             __errno_location
        - Src:             'bindings.c:627,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:629,7'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:632,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:639,9'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:648,3'
          Dst:             __errno_location
    - functionName:    pr_namebind_create
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 1082
      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:981,5'
          Dst:             __errno_location
        - Src:             'bindings.c:986,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:986,10'
          Dst:             ntohs
        - Src:             'bindings.c:997,19'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:998,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:999,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1000,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1002,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1006,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1009,7'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:1010,7'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1011,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1013,16'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1019,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1017,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1023,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1029,28'
          Dst:             make_array
        - Src:             'bindings.c:1037,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1050,13'
          Dst:             strcasecmp
        - Src:             'bindings.c:1051,11'
          Dst:             __errno_location
        - Src:             'bindings.c:1058,32'
          Dst:             pcalloc
        - Src:             'bindings.c:1064,7'
          Dst:             pr_str_is_fnmatch
        - Src:             'bindings.c:1070,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1068,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1080,24'
          Dst:             push_array
    - functionName:    pr_namebind_open
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1264
      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:1247,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1251,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:1251,10'
          Dst:             ntohs
        - Src:             'bindings.c:1256,14'
          Dst:             pr_namebind_find
        - Src:             'bindings.c:1258,5'
          Dst:             __errno_location
    - functionName:    pr_namebind_find
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1207
      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:1090,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1095,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1102,19'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1103,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:1104,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1105,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1107,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1111,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1114,7'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:1115,7'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1116,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1118,16'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1125,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1122,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1129,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1141,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1146,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1144,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1153,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1151,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1157,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1167,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1179,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1184,15'
          Dst:             strcasecmp
        - Src:             'bindings.c:1191,15'
          Dst:             pr_fnmatch
        - Src:             'bindings.c:1192,13'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1198,11'
          Dst:             pr_trace_msg
    - functionName:    init_ipbind_table
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 50
      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: 61
      functionLinenumberEnd: 80
      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:65,12'
          Dst:             pr_netaddr_get_inaddr_len
        - Src:             'bindings.c:71,33'
          Dst:             pr_netaddr_get_inaddr
    - functionName:    server_cleanup_cb
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 55
      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: 1573
      functionLinenumberEnd: 1822
      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:1579,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:1591,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1592,9'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1597,26'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1598,9'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1606,27'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:1616,20'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1632,11'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1638,18'
          Dst:             __errno_location
        - Src:             'bindings.c:1638,9'
          Dst:             strerror
        - Src:             'bindings.c:1635,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1641,11'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1646,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1646,59'
          Dst:             __errno_location
        - Src:             'bindings.c:1646,50'
          Dst:             strerror
        - Src:             'bindings.c:1644,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1649,11'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1653,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1653,47'
          Dst:             strerror
        - Src:             'bindings.c:1651,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1660,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1662,22'
          Dst:             process_serveralias
        - Src:             'bindings.c:1675,24'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1691,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1692,13'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1695,46'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1695,13'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1702,24'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:1708,15'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1712,71'
          Dst:             __errno_location
        - Src:             'bindings.c:1712,62'
          Dst:             strerror
        - Src:             'bindings.c:1710,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1715,15'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1720,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1720,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1720,47'
          Dst:             strerror
        - Src:             'bindings.c:1718,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1723,15'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1727,53'
          Dst:             __errno_location
        - Src:             'bindings.c:1727,44'
          Dst:             strerror
        - Src:             'bindings.c:1725,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1733,15'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1737,71'
          Dst:             __errno_location
        - Src:             'bindings.c:1737,62'
          Dst:             strerror
        - Src:             'bindings.c:1735,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1740,15'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1745,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1745,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1745,47'
          Dst:             strerror
        - Src:             'bindings.c:1743,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1748,15'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1752,53'
          Dst:             __errno_location
        - Src:             'bindings.c:1752,44'
          Dst:             strerror
        - Src:             'bindings.c:1750,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1766,24'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1773,7'
          Dst:             register_cleanup2
        - Src:             'bindings.c:1773,7'
          Dst:             server_cleanup_cb
        - Src:             'bindings.c:1775,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1779,69'
          Dst:             __errno_location
        - Src:             'bindings.c:1779,60'
          Dst:             strerror
        - Src:             'bindings.c:1777,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1782,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1787,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1787,54'
          Dst:             __errno_location
        - Src:             'bindings.c:1787,45'
          Dst:             strerror
        - Src:             'bindings.c:1785,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1790,13'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1794,51'
          Dst:             __errno_location
        - Src:             'bindings.c:1794,42'
          Dst:             strerror
        - Src:             'bindings.c:1792,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1801,5'
          Dst:             process_serveralias
        - Src:             'bindings.c:1804,3'
          Dst:             trace_ipbind_table
        - Src:             'bindings.c:1811,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1815,9'
          Dst:             xaset_remove
        - Src:             'bindings.c:1816,9'
          Dst:             destroy_pool
    - functionName:    pr_ipbind_get_listening_conn
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 184
      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:106,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:112,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:124,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:128,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:128,15'
          Dst:             strcmp
        - Src:             'bindings.c:147,27'
          Dst:             make_sub_pool
        - Src:             'bindings.c:148,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:150,27'
          Dst:             xaset_create
        - Src:             'bindings.c:153,7'
          Dst:             make_sub_pool
        - Src:             'bindings.c:154,3'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:156,7'
          Dst:             pr_inet_create_conn
        - Src:             'bindings.c:167,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'bindings.c:171,8'
          Dst:             pcalloc
        - Src:             'bindings.c:174,14'
          Dst:             pr_netaddr_dup
        - Src:             'bindings.c:176,7'
          Dst:             __errno_location
        - Src:             'bindings.c:182,3'
          Dst:             xaset_insert
    - functionName:    pr_ipbind_create
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 576
      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:494,5'
          Dst:             __errno_location
        - Src:             'bindings.c:499,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:501,7'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:503,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:502,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:507,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:509,9'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:526,9'
          Dst:             find_config
        - Src:             'bindings.c:529,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:528,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:531,7'
          Dst:             __errno_location
        - Src:             'bindings.c:536,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:535,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:541,20'
          Dst:             make_sub_pool
        - Src:             'bindings.c:542,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:545,12'
          Dst:             pcalloc
        - Src:             'bindings.c:555,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:554,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:560,5'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_open
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 951
      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:882,5'
          Dst:             __errno_location
        - Src:             'bindings.c:887,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:889,5'
          Dst:             __errno_location
        - Src:             'bindings.c:934,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:937,13'
          Dst:             pr_namebind_open
        - Src:             'bindings.c:942,20'
          Dst:             __errno_location
        - Src:             'bindings.c:942,11'
          Dst:             strerror
        - Src:             'bindings.c:940,9'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_add_binds
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 320
      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:256,5'
          Dst:             __errno_location
        - Src:             'bindings.c:260,7'
          Dst:             find_config
        - Src:             'bindings.c:264,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:266,12'
          Dst:             pr_netaddr_get_addr
        - Src:             'bindings.c:268,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:270,11'
          Dst:             find_config_next
        - Src:             'bindings.c:279,21'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:284,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:288,69'
          Dst:             __errno_location
        - Src:             'bindings.c:288,60'
          Dst:             strerror
        - Src:             'bindings.c:286,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:291,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:296,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:296,48'
          Dst:             __errno_location
        - Src:             'bindings.c:296,39'
          Dst:             strerror
        - Src:             'bindings.c:294,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:300,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:304,69'
          Dst:             __errno_location
        - Src:             'bindings.c:304,60'
          Dst:             strerror
        - Src:             'bindings.c:302,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:307,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:312,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:312,48'
          Dst:             __errno_location
        - Src:             'bindings.c:312,39'
          Dst:             strerror
        - Src:             'bindings.c:310,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:316,9'
          Dst:             find_config_next
    - functionName:    init_inetd_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1398
      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:1299,25'
          Dst:             pr_inet_create_conn
        - Src:             'bindings.c:1308,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'bindings.c:1312,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'bindings.c:1313,18'
          Dst:             __errno_location
        - Src:             'bindings.c:1316,7'
          Dst:             strerror
        - Src:             'bindings.c:1315,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1319,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1323,5'
          Dst:             exit
        - Src:             'bindings.c:1326,20'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1332,9'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1337,69'
          Dst:             __errno_location
        - Src:             'bindings.c:1337,60'
          Dst:             strerror
        - Src:             'bindings.c:1335,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1340,9'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1345,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1345,57'
          Dst:             __errno_location
        - Src:             'bindings.c:1345,48'
          Dst:             strerror
        - Src:             'bindings.c:1343,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1348,9'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1352,54'
          Dst:             __errno_location
        - Src:             'bindings.c:1352,45'
          Dst:             strerror
        - Src:             'bindings.c:1350,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1365,5'
          Dst:             register_cleanup2
        - Src:             'bindings.c:1365,5'
          Dst:             server_cleanup_cb
        - Src:             'bindings.c:1368,22'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1374,11'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1378,67'
          Dst:             __errno_location
        - Src:             'bindings.c:1378,58'
          Dst:             strerror
        - Src:             'bindings.c:1376,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1381,11'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1386,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1386,52'
          Dst:             __errno_location
        - Src:             'bindings.c:1386,43'
          Dst:             strerror
        - Src:             'bindings.c:1384,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1389,11'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1393,49'
          Dst:             __errno_location
        - Src:             'bindings.c:1393,40'
          Dst:             strerror
        - Src:             'bindings.c:1391,7'
          Dst:             pr_log_pri
    - functionName:    init_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1824
      functionLinenumberEnd: 1852
      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:1831,10'
          Dst:             socket
        - Src:             'bindings.c:1833,5'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'bindings.c:1836,12'
          Dst:             close
        - Src:             'bindings.c:1841,11'
          Dst:             init_inetd_bindings
        - Src:             'bindings.c:1844,11'
          Dst:             init_standalone_bindings
        - Src:             'bindings.c:1848,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1850,5'
          Dst:             exit
    - functionName:    free_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1287
      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:1268,5'
          Dst:             destroy_pool
        - Src:             'bindings.c:1283,7'
          Dst:             pr_signals_handle
    - functionName:    pr_namebind_count
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1238
      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:1231,12'
          Dst:             pr_ipbind_find
    - functionName:    pr_namebind_get_server
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1221
      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:1215,14'
          Dst:             pr_namebind_find
    - functionName:    pr_ipbind_listen
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 874
      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:807,5'
          Dst:             __errno_location
        - Src:             'bindings.c:814,20'
          Dst:             make_sub_pool
        - Src:             'bindings.c:815,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:820,21'
          Dst:             make_array
        - Src:             'bindings.c:836,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:846,11'
          Dst:             pr_inet_listen
        - Src:             'bindings.c:851,15'
          Dst:             pr_inet_resetlisten
        - Src:             'bindings.c:855,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:856,24'
          Dst:             __errno_location
        - Src:             'bindings.c:856,15'
          Dst:             strerror
        - Src:             'bindings.c:853,13'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:867,25'
          Dst:             push_array
    - functionName:    ipbind_find_port
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 614
      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:591,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:609,5'
          Dst:             __errno_location
    - functionName:    pr_ipbind_get_server
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          270
      EdgeCount:       44
      CyclomaticComplexity: 14
      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:702,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:706,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:704,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:708,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:707,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:720,17'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:722,3'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:723,3'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:724,3'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:726,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:729,47'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:728,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:732,45'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:731,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:739,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:748,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:749,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:750,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:752,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:755,47'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:754,7'
          Dst:             pr_log_debug
        - Src:             'bindings.c:765,12'
          Dst:             ipbind_find_port
        - Src:             'bindings.c:767,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:778,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:777,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:781,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:780,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:789,7'
          Dst:             pr_netaddr_is_loopback
        - Src:             'bindings.c:793,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:792,5'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_get
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 691
      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:665,7'
          Dst:             __errno_location
        - Src:             'bindings.c:682,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:689,3'
          Dst:             __errno_location
    - functionName:    pr_ipbind_close_listeners
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 485
      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:475,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:479,14'
          Dst:             close
    - functionName:    pr_namebind_close
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 972
      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:959,5'
          Dst:             __errno_location
        - Src:             'bindings.c:963,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:963,10'
          Dst:             ntohs
        - Src:             'bindings.c:964,14'
          Dst:             pr_namebind_find
        - Src:             'bindings.c:966,5'
          Dst:             __errno_location
    - functionName:    pr_ipbind_close
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          460
      EdgeCount:       93
      CyclomaticComplexity: 25
      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:330,9'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:334,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:333,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:335,7'
          Dst:             __errno_location
        - Src:             'bindings.c:340,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:342,11'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:351,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:350,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:352,7'
          Dst:             __errno_location
        - Src:             'bindings.c:358,7'
          Dst:             __errno_location
        - Src:             'bindings.c:373,7'
          Dst:             pr_inet_close
        - Src:             'bindings.c:394,9'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:397,13'
          Dst:             pr_namebind_close
        - Src:             'bindings.c:400,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:401,22'
          Dst:             __errno_location
        - Src:             'bindings.c:401,13'
          Dst:             strerror
        - Src:             'bindings.c:398,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:411,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:418,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:424,11'
          Dst:             pr_inet_close
        - Src:             'bindings.c:443,13'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:446,17'
          Dst:             pr_namebind_close
        - Src:             'bindings.c:449,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:450,25'
          Dst:             __errno_location
        - Src:             'bindings.c:450,16'
          Dst:             strerror
        - Src:             'bindings.c:447,15'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_accept_conn
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 247
      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:203,5'
          Dst:             __errno_location
        - Src:             'bindings.c:210,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:213,16'
          Dst:             pr_inet_accept_nowait
        - Src:             'bindings.c:216,22'
          Dst:             __errno_location
        - Src:             'bindings.c:229,33'
          Dst:             strerror
        - Src:             'bindings.c:228,13'
          Dst:             pr_log_pri
        - Src:             'bindings.c:235,11'
          Dst:             __errno_location
        - Src:             'bindings.c:245,3'
          Dst:             __errno_location
    - functionName:    pr_session_get_ttyname
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 513
      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:459,5'
          Dst:             __errno_location
        - Src:             'session.c:465,12'
          Dst:             pstrdup
        - Src:             'session.c:468,16'
          Dst:             pr_table_get
        - Src:             'session.c:470,9'
          Dst:             strcmp
        - Src:             'session.c:471,9'
          Dst:             strcmp
        - Src:             'session.c:478,16'
          Dst:             strcmp
        - Src:             'session.c:479,16'
          Dst:             strcmp
        - Src:             'session.c:480,16'
          Dst:             strcmp
        - Src:             'session.c:481,16'
          Dst:             strcmp
        - Src:             'session.c:487,22'
          Dst:             pstrdup
        - Src:             'session.c:488,14'
          Dst:             pstrdup
        - Src:             'session.c:506,40'
          Dst:             getpid
        - Src:             'session.c:505,3'
          Dst:             pr_snprintf
        - Src:             'session.c:510,18'
          Dst:             pstrdup
        - Src:             'session.c:512,10'
          Dst:             pstrdup
    - functionName:    pr_session_set_protocol
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 452
      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:431,5'
          Dst:             __errno_location
        - Src:             'session.c:435,11'
          Dst:             pr_table_exists
        - Src:             'session.c:437,39'
          Dst:             pstrdup
        - Src:             'session.c:438,7'
          Dst:             pstrdup
        - Src:             'session.c:437,11'
          Dst:             pr_table_set
        - Src:             'session.c:439,14'
          Dst:             __errno_location
        - Src:             'session.c:442,39'
          Dst:             pstrdup
        - Src:             'session.c:443,7'
          Dst:             pstrdup
        - Src:             'session.c:442,11'
          Dst:             pr_table_add
        - Src:             'session.c:444,14'
          Dst:             __errno_location
        - Src:             'session.c:448,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:450,3'
          Dst:             __errno_location
    - functionName:    pr_session_set_idle
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 424
      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:410,26'
          Dst:             time
        - Src:             'session.c:409,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:413,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:423,3'
          Dst:             pr_proctitle_set
    - functionName:    pr_session_send_banner
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 404
      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:290,13'
          Dst:             get_param_ptr
        - Src:             'session.c:292,9'
          Dst:             pr_display_file
        - Src:             'session.c:294,27'
          Dst:             __errno_location
        - Src:             'session.c:294,18'
          Dst:             strerror
        - Src:             'session.c:293,7'
          Dst:             pr_log_debug
        - Src:             'session.c:298,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'session.c:300,10'
          Dst:             find_config
        - Src:             'session.c:316,7'
          Dst:             pr_log_debug
        - Src:             'session.c:318,19'
          Dst:             pr_netaddr_get_addr
        - Src:             'session.c:326,9'
          Dst:             pr_log_debug
        - Src:             'session.c:331,23'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'session.c:335,7'
          Dst:             find_config
        - Src:             'session.c:340,21'
          Dst:             get_param_ptr
        - Src:             'session.c:348,11'
          Dst:             strstr
        - Src:             'session.c:349,24'
          Dst:             sreplace
        - Src:             'session.c:353,11'
          Dst:             strstr
        - Src:             'session.c:354,24'
          Dst:             sreplace
        - Src:             'session.c:358,11'
          Dst:             strstr
        - Src:             'session.c:359,24'
          Dst:             sreplace
        - Src:             'session.c:363,11'
          Dst:             strstr
        - Src:             'session.c:364,24'
          Dst:             sreplace
        - Src:             'session.c:369,9'
          Dst:             pr_response_send
        - Src:             'session.c:372,9'
          Dst:             pr_response_add
        - Src:             'session.c:379,9'
          Dst:             pr_response_send
        - Src:             'session.c:382,9'
          Dst:             pr_response_add
        - Src:             'session.c:387,9'
          Dst:             pr_response_send
        - Src:             'session.c:391,9'
          Dst:             pr_response_add
        - Src:             'session.c:398,7'
          Dst:             pr_response_send
        - Src:             'session.c:401,7'
          Dst:             pr_response_add
    - functionName:    pr_session_get_protocol
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 282
      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:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:257,16'
          Dst:             pr_table_get
        - Src:             'session.c:268,7'
          Dst:             strcmp
        - Src:             'session.c:269,7'
          Dst:             strcmp
        - Src:             'session.c:273,7'
          Dst:             strcmp
        - Src:             'session.c:274,7'
          Dst:             strcmp
        - Src:             'session.c:275,7'
          Dst:             strcmp
        - Src:             'session.c:276,7'
          Dst:             strcmp
    - functionName:    pr_session_get_disconnect_reason
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 251
      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:193,3'
          Branch Sides:    []
      Callsites:
        - Src:             'session.c:248,16'
          Dst:             pr_table_get
    - functionName:    sess_cleanup
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 106
      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:43,11'
          Dst:             pr_scoreboard_entry_del
        - Src:             'session.c:44,11'
          Dst:             __errno_location
        - Src:             'session.c:45,11'
          Dst:             __errno_location
        - Src:             'session.c:47,20'
          Dst:             __errno_location
        - Src:             'session.c:47,11'
          Dst:             strerror
        - Src:             'session.c:46,9'
          Dst:             pr_log_debug
        - Src:             'session.c:53,9'
          Dst:             pr_scoreboard_entry_del
        - Src:             'session.c:54,9'
          Dst:             __errno_location
        - Src:             'session.c:55,9'
          Dst:             __errno_location
        - Src:             'session.c:57,18'
          Dst:             __errno_location
        - Src:             'session.c:57,9'
          Dst:             strerror
        - Src:             'session.c:56,7'
          Dst:             pr_log_debug
        - Src:             'session.c:66,16'
          Dst:             pr_session_get_ttyname
        - Src:             'session.c:67,28'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'session.c:68,7'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'session.c:67,5'
          Dst:             log_wtmp
        - Src:             'session.c:75,5'
          Dst:             pr_inet_close
        - Src:             'session.c:80,5'
          Dst:             pr_inet_close
        - Src:             'session.c:85,3'
          Dst:             pr_event_generate
        - Src:             'session.c:102,7'
          Dst:             pr_session_get_protocol
        - Src:             'session.c:101,5'
          Dst:             pr_log_pri
        - Src:             'session.c:105,3'
          Dst:             log_closesyslog
    - functionName:    pr_session_end
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - _exit
        - pr_signals_block
        - pr_signals_unblock
        - sess_cleanup
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:147,3'
          Dst:             pr_signals_block
        - Src:             'session.c:148,3'
          Dst:             sess_cleanup
        - Src:             'session.c:149,3'
          Dst:             pr_signals_unblock
        - Src:             'session.c:186,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: 113
      functionLinenumberEnd: 138
      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:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:122,9'
          Dst:             pr_table_add_dup
        - Src:             'session.c:124,20'
          Dst:             __errno_location
        - Src:             'session.c:128,32'
          Dst:             strerror
        - Src:             'session.c:127,9'
          Dst:             pr_log_debug
        - Src:             'session.c:137,3'
          Dst:             pr_session_end
    - functionName:    session_set_connected
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 110
      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: 91
      functionLinenumberEnd: 112
      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:94,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:97,10'
          Dst:             pr_ctrls_alloc
        - Src:             'ctrls.c:111,3'
          Dst:             pr_unblock_ctrls
    - functionName:    pr_block_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1881
      functionLinenumberEnd: 1883
      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: 128
      functionLinenumberEnd: 153
      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:144,27'
          Dst:             pcalloc
    - functionName:    pr_unblock_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1885
      functionLinenumberEnd: 1887
      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: 2693
      functionLinenumberEnd: 2697
      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:2696,10'
          Dst:             init_ctrls2
    - functionName:    init_ctrls2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2595
      functionLinenumberEnd: 2691
      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:2602,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2605,16'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2606,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:2607,3'
          Dst:             register_cleanup2
        - Src:             'ctrls.c:2607,3'
          Dst:             ctrls_cleanup_cb
        - Src:             'ctrls.c:2624,8'
          Dst:             socket
        - Src:             'ctrls.c:2625,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:2629,7'
          Dst:             strerror
        - Src:             'ctrls.c:2628,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2631,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2637,3'
          Dst:             sstrncpy
        - Src:             'ctrls.c:2640,7'
          Dst:             bind
        - Src:             'ctrls.c:2641,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:2644,20'
          Dst:             strerror
        - Src:             'ctrls.c:2643,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2645,12'
          Dst:             close
        - Src:             'ctrls.c:2646,12'
          Dst:             unlink
        - Src:             'ctrls.c:2648,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2652,7'
          Dst:             fstat
        - Src:             'ctrls.c:2653,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:2656,20'
          Dst:             strerror
        - Src:             'ctrls.c:2655,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2657,12'
          Dst:             close
        - Src:             'ctrls.c:2658,12'
          Dst:             unlink
        - Src:             'ctrls.c:2660,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2665,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2675,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2684,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2688,10'
          Dst:             close
        - Src:             'ctrls.c:2689,10'
          Dst:             unlink
    - functionName:    ctrls_cleanup_cb
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2583
      functionLinenumberEnd: 2592
      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: 2564
      functionLinenumberEnd: 2581
      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:2577,9'
          Dst:             pr_log_vwritefile
    - functionName:    pr_ctrls_set_logfd
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2553
      functionLinenumberEnd: 2561
      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:2557,12'
          Dst:             close
    - functionName:    pr_ctrls_unregister_module_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2540
      functionLinenumberEnd: 2551
      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:2544,9'
          Dst:             pr_ctrls_unregister_module_actions2
    - functionName:    pr_ctrls_unregister_module_actions2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2482
      functionLinenumberEnd: 2537
      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:2489,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2501,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2509,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:2522,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2529,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2531,7'
          Dst:             pr_ctrls_unregister
        - Src:             'ctrls.c:2532,7'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_unregister
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 308
      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:270,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:275,28'
          Dst:             strcmp
        - Src:             'ctrls.c:291,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:296,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:300,3'
          Dst:             pr_unblock_ctrls
        - Src:             'ctrls.c:303,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_set_module_acls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2468
      functionLinenumberEnd: 2479
      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:2472,9'
          Dst:             pr_ctrls_set_module_acls2
    - functionName:    pr_ctrls_set_module_acls2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2386
      functionLinenumberEnd: 2465
      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:2395,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2399,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2400,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2401,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2412,9'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2417,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2425,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:2434,9'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2442,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2447,13'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2448,17'
          Dst:             pr_ctrls_set_user_acl
        - Src:             'ctrls.c:2451,20'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2452,17'
          Dst:             pr_ctrls_set_group_acl
    - functionName:    pr_ctrls_set_user_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2327
      functionLinenumberEnd: 2382
      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:2338,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2342,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2344,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2354,11'
          Dst:             pr_ctrls_parse_acl
        - Src:             'ctrls.c:2357,14'
          Dst:             make_array
        - Src:             'ctrls.c:2362,9'
          Dst:             strcmp
        - Src:             'ctrls.c:2365,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2369,11'
          Dst:             pr_auth_name2uid
        - Src:             'ctrls.c:2374,17'
          Dst:             push_array
        - Src:             'ctrls.c:2380,3'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_set_group_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2270
      functionLinenumberEnd: 2324
      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:2280,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2284,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2286,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2296,12'
          Dst:             pr_ctrls_parse_acl
        - Src:             'ctrls.c:2299,14'
          Dst:             make_array
        - Src:             'ctrls.c:2304,9'
          Dst:             strcmp
        - Src:             'ctrls.c:2307,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2311,11'
          Dst:             pr_auth_name2gid
        - Src:             'ctrls.c:2316,17'
          Dst:             push_array
        - Src:             'ctrls.c:2322,3'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_parse_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2232
      functionLinenumberEnd: 2267
      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:2239,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2243,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2244,18'
          Dst:             pstrdup
        - Src:             'ctrls.c:2247,13'
          Dst:             make_array
        - Src:             'ctrls.c:2250,18'
          Dst:             ctrls_argsep
        - Src:             'ctrls.c:2253,12'
          Dst:             pstrdup
        - Src:             'ctrls.c:2256,17'
          Dst:             push_array
        - Src:             'ctrls.c:2260,15'
          Dst:             push_array
        - Src:             'ctrls.c:2263,3'
          Dst:             destroy_pool
    - functionName:    ctrls_argsep
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2183
      functionLinenumberEnd: 2230
      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:2190,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2195,10'
          Dst:             __ctype_b_loc
        - Src:             'ctrls.c:2211,41'
          Dst:             __ctype_b_loc
    - functionName:    pr_ctrls_init_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2171
      functionLinenumberEnd: 2181
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2173,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_check_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2118
      functionLinenumberEnd: 2169
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          206
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_ctrls_check_group_acl
        - pr_ctrls_check_user_acl
        - pr_trace_msg
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2126,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2131,9'
          Dst:             strcmp
        - Src:             'ctrls.c:2137,22'
          Dst:             pr_ctrls_check_user_acl
        - Src:             'ctrls.c:2139,9'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2144,23'
          Dst:             pr_ctrls_check_group_acl
        - Src:             'ctrls.c:2146,9'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2161,5'
          Dst:             pr_trace_msg
    - functionName:    pr_ctrls_check_user_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2078
      functionLinenumberEnd: 2114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2082,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2097,7'
          Dst:             pr_trace_msg
    - functionName:    pr_ctrls_check_group_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2037
      functionLinenumberEnd: 2072
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2041,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2055,7'
          Dst:             pr_trace_msg
    - functionName:    pr_ctrls_reset
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2028
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - pr_ctrls_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2024,7'
          Dst:             pr_ctrls_free
    - functionName:    pr_ctrls_free
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 201
      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:158,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:163,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:188,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:199,3'
          Dst:             pr_unblock_ctrls
    - functionName:    pr_run_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1908
      functionLinenumberEnd: 1997
      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:1914,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1918,9'
          Dst:             time
        - Src:             'ctrls.c:1926,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1936,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1943,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1950,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1956,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1960,7'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1965,9'
          Dst:             strcmp
        - Src:             'ctrls.c:1966,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1973,5'
          Dst:             pr_unblock_ctrls
        - Src:             'ctrls.c:1977,5'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:1979,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1983,7'
          Dst:             pr_trace_msg
    - functionName:    pr_ctrls_add_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 438
      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:409,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:417,28'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:418,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:422,28'
          Dst:             make_array
        - Src:             'ctrls.c:428,22'
          Dst:             strlen
        - Src:             'ctrls.c:428,49'
          Dst:             strlen
        - Src:             'ctrls.c:428,3'
          Dst:             pr_vsnprintf
        - Src:             'ctrls.c:435,5'
          Dst:             pstrdup
        - Src:             'ctrls.c:434,15'
          Dst:             push_array
    - functionName:    pr_ctrls_check_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1889
      functionLinenumberEnd: 1906
      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:1895,11'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:1896,9'
          Dst:             pr_log_pri
        - Src:             'ctrls.c:1899,9'
          Dst:             __errno_location
    - functionName:    ctrls_lookup_action
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1132
      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:1132,10'
          Dst:             ctrls_lookup_next_action
    - functionName:    ctrls_lookup_next_action
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1164
      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:1141,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1146,12'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:1154,9'
          Dst:             strcmp
        - Src:             'ctrls.c:1159,14'
          Dst:             ctrls_prepare
    - functionName:    ctrls_get_creds_peercred
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1490
      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:1466,7'
          Dst:             getsockopt
        - Src:             'ctrls.c:1467,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1471,7'
          Dst:             strerror
        - Src:             'ctrls.c:1469,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1473,5'
          Dst:             __errno_location
    - functionName:    ctrls_get_creds_basic
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1769
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          322
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - destroy_pool
        - lstat
        - make_sub_pool
        - pr_ctrls_issock_unix
        - pr_ctrls_send_response
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strerror
        - strtoul
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1665,3'
          Dst:             pr_privs_root
        - Src:             'ctrls.c:1666,10'
          Dst:             lstat
        - Src:             'ctrls.c:1667,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1670,7'
          Dst:             pr_signals_handle
        - Src:             'ctrls.c:1674,5'
          Dst:             pr_privs_relinquish
        - Src:             'ctrls.c:1676,23'
          Dst:             strerror
        - Src:             'ctrls.c:1675,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1678,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1681,3'
          Dst:             pr_privs_relinquish
        - Src:             'ctrls.c:1684,7'
          Dst:             pr_ctrls_issock_unix
        - Src:             'ctrls.c:1685,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1692,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1694,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1699,16'
          Dst:             time
        - Src:             'ctrls.c:1707,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1714,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1722,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1730,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1735,16'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:1737,9'
          Dst:             pr_ctrls_send_response
        - Src:             'ctrls.c:1739,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1739,9'
          Dst:             strerror
        - Src:             'ctrls.c:1738,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1742,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1744,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1752,14'
          Dst:             strtoul
        - Src:             'ctrls.c:1755,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1757,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_issock_unix
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1453
      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:1451,3'
          Dst:             __errno_location
    - functionName:    pr_ctrls_send_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 922
      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:858,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:864,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:868,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:869,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:871,10'
          Dst:             pr_json_object_alloc
        - Src:             'ctrls.c:873,9'
          Dst:             pr_json_object_set_number
        - Src:             'ctrls.c:875,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:878,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:879,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:881,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:885,11'
          Dst:             pr_json_array_alloc
        - Src:             'ctrls.c:888,11'
          Dst:             pr_json_array_append_string
        - Src:             'ctrls.c:889,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:892,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:893,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:894,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:896,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:901,9'
          Dst:             pr_json_object_set_array
        - Src:             'ctrls.c:902,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:905,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:906,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:907,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:909,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:913,9'
          Dst:             ctrls_send_msg
        - Src:             'ctrls.c:914,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:916,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:917,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:918,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:920,3'
          Dst:             __errno_location
    - functionName:    ctrls_send_msg
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          112
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_json_object_to_text
        - pr_signals_block
        - pr_signals_handle
        - pr_signals_unblock
        - pr_trace_msg
        - strlen
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:471,9'
          Dst:             pr_json_object_to_text
        - Src:             'ctrls.c:476,12'
          Dst:             strlen
        - Src:             'ctrls.c:478,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:482,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:484,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:488,9'
          Dst:             write
        - Src:             'ctrls.c:489,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:492,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:494,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:499,11'
          Dst:             write
        - Src:             'ctrls.c:500,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:504,9'
          Dst:             pr_signals_handle
        - Src:             'ctrls.c:508,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:510,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:517,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_ctrls_accept
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1772
      functionLinenumberEnd: 1879
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          198
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - accept
        - close
        - ctrls_get_creds_basic
        - ctrls_get_creds_peercred
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strerror
        - strncmp
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1782,11'
          Dst:             accept
        - Src:             'ctrls.c:1783,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1787,7'
          Dst:             pr_signals_handle
        - Src:             'ctrls.c:1789,15'
          Dst:             accept
        - Src:             'ctrls.c:1790,16'
          Dst:             __errno_location
        - Src:             'ctrls.c:1795,54'
          Dst:             strerror
        - Src:             'ctrls.c:1794,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1797,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1804,7'
          Dst:             strncmp
        - Src:             'ctrls.c:1806,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1808,12'
          Dst:             close
        - Src:             'ctrls.c:1809,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1819,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1821,9'
          Dst:             ctrls_get_creds_basic
        - Src:             'ctrls.c:1824,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:1826,12'
          Dst:             close
        - Src:             'ctrls.c:1827,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1832,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1834,9'
          Dst:             ctrls_get_creds_peercred
        - Src:             'ctrls.c:1857,17'
          Dst:             __errno_location
        - Src:             'ctrls.c:1857,8'
          Dst:             strerror
        - Src:             'ctrls.c:1855,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1874,3'
          Dst:             pr_privs_root
        - Src:             'ctrls.c:1875,10'
          Dst:             unlink
        - Src:             'ctrls.c:1876,3'
          Dst:             pr_privs_relinquish
    - functionName:    pr_ctrls_connect
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          239
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - bind
        - chmod
        - close
        - connect
        - fcntl
        - getpid
        - lstat
        - pr_signals_block
        - pr_signals_unblock
        - pr_snprintf
        - pr_trace_msg
        - socket
        - sstrncpy
        - strerror
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1303,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1308,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:1311,8'
          Dst:             socket
        - Src:             'ctrls.c:1313,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1315,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1317,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1321,7'
          Dst:             fcntl
        - Src:             'ctrls.c:1322,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1324,12'
          Dst:             close
        - Src:             'ctrls.c:1325,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1327,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1343,41'
          Dst:             getpid
        - Src:             'ctrls.c:1342,3'
          Dst:             pr_snprintf
        - Src:             'ctrls.c:1349,7'
          Dst:             lstat
        - Src:             'ctrls.c:1352,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1355,14'
          Dst:             close
        - Src:             'ctrls.c:1356,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1358,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:1363,10'
          Dst:             unlink
        - Src:             'ctrls.c:1366,7'
          Dst:             bind
        - Src:             'ctrls.c:1367,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1370,25'
          Dst:             strerror
        - Src:             'ctrls.c:1369,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1371,12'
          Dst:             unlink
        - Src:             'ctrls.c:1372,12'
          Dst:             close
        - Src:             'ctrls.c:1373,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1375,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1380,7'
          Dst:             chmod
        - Src:             'ctrls.c:1381,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1384,7'
          Dst:             strerror
        - Src:             'ctrls.c:1383,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1385,12'
          Dst:             unlink
        - Src:             'ctrls.c:1386,12'
          Dst:             close
        - Src:             'ctrls.c:1387,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1389,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1397,3'
          Dst:             sstrncpy
        - Src:             'ctrls.c:1400,7'
          Dst:             connect
        - Src:             'ctrls.c:1401,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1404,27'
          Dst:             strerror
        - Src:             'ctrls.c:1403,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1405,12'
          Dst:             unlink
        - Src:             'ctrls.c:1406,12'
          Dst:             close
        - Src:             'ctrls.c:1407,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1409,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1431,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_set_registered_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1263
      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:1232,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1238,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1249,10'
          Dst:             strcmp
        - Src:             'ctrls.c:1250,10'
          Dst:             strcmp
        - Src:             'ctrls.c:1258,5'
          Dst:             __errno_location
    - functionName:    pr_get_registered_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1220
      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:1182,5'
          Branch Sides:    []
      Callsites:
        - Src:             'ctrls.c:1171,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1177,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1185,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1189,12'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1201,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1205,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1212,9'
          Dst:             pr_ctrls_add_response
    - functionName:    pr_ctrls_recv_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 1121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          389
      EdgeCount:       53
      CyclomaticComplexity: 17
      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:939,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:944,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:948,11'
          Dst:             read
        - Src:             'ctrls.c:949,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:952,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:956,23'
          Dst:             strerror
        - Src:             'ctrls.c:954,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:958,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:964,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:966,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:969,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:973,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:974,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:976,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:982,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:983,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:985,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:988,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:993,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:994,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:996,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:999,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1004,9'
          Dst:             pcalloc
        - Src:             'ctrls.c:1005,11'
          Dst:             read
        - Src:             'ctrls.c:1006,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1009,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1010,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1014,31'
          Dst:             strerror
        - Src:             'ctrls.c:1012,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1015,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1021,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1022,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1024,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1027,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1031,10'
          Dst:             pr_json_object_from_text
        - Src:             'ctrls.c:1032,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1035,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1036,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1041,7'
          Dst:             strerror
        - Src:             'ctrls.c:1038,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1042,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1046,9'
          Dst:             pr_json_object_get_number
        - Src:             'ctrls.c:1047,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1050,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1051,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1052,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1056,7'
          Dst:             strerror
        - Src:             'ctrls.c:1054,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1057,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1062,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1064,9'
          Dst:             pr_json_object_get_array
        - Src:             'ctrls.c:1065,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1070,7'
          Dst:             strerror
        - Src:             'ctrls.c:1068,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1071,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1072,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1073,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1075,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1079,14'
          Dst:             pr_json_array_count
        - Src:             'ctrls.c:1080,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1082,13'
          Dst:             make_array
        - Src:             'ctrls.c:1092,11'
          Dst:             pr_json_array_get_string
        - Src:             'ctrls.c:1093,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:1098,14'
          Dst:             strerror
        - Src:             'ctrls.c:1096,14'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1099,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:1100,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1101,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1102,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1104,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:1108,40'
          Dst:             pstrdup
        - Src:             'ctrls.c:1108,17'
          Dst:             push_array
        - Src:             'ctrls.c:1115,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:1116,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1117,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1118,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_ctrls_recv_request
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          484
      EdgeCount:       59
      CyclomaticComplexity: 19
      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:609,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:614,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:619,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:623,11'
          Dst:             read
        - Src:             'ctrls.c:624,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:627,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:631,23'
          Dst:             strerror
        - Src:             'ctrls.c:629,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:632,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:638,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:640,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:643,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:647,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:648,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:650,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:656,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:657,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:659,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:662,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:667,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:668,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:670,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:673,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:678,9'
          Dst:             pcalloc
        - Src:             'ctrls.c:680,11'
          Dst:             read
        - Src:             'ctrls.c:681,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:684,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:685,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:689,31'
          Dst:             strerror
        - Src:             'ctrls.c:687,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:690,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:696,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:697,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:699,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:702,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:706,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:709,10'
          Dst:             pr_json_object_from_text
        - Src:             'ctrls.c:710,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:713,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:714,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:719,7'
          Dst:             strerror
        - Src:             'ctrls.c:716,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:720,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:724,9'
          Dst:             pr_json_object_get_string
        - Src:             'ctrls.c:726,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:729,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:730,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:731,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:735,7'
          Dst:             strerror
        - Src:             'ctrls.c:733,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:736,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:740,9'
          Dst:             pr_json_object_get_array
        - Src:             'ctrls.c:741,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:744,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:745,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:746,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:750,7'
          Dst:             strerror
        - Src:             'ctrls.c:748,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:751,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:755,14'
          Dst:             pr_json_array_count
        - Src:             'ctrls.c:756,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:761,10'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:763,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:765,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:766,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:767,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:768,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:771,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:775,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:781,11'
          Dst:             pr_json_array_get_string
        - Src:             'ctrls.c:782,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:787,14'
          Dst:             strerror
        - Src:             'ctrls.c:785,14'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:788,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:789,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:790,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:791,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:793,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:797,17'
          Dst:             strlen
        - Src:             'ctrls.c:798,11'
          Dst:             pr_ctrls_add_arg
        - Src:             'ctrls.c:799,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:804,9'
          Dst:             strerror
        - Src:             'ctrls.c:802,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:805,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:806,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:807,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:808,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:810,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:816,21'
          Dst:             push_array
        - Src:             'ctrls.c:825,15'
          Dst:             ctrls_lookup_next_action
        - Src:             'ctrls.c:828,12'
          Dst:             pr_ctrls_copy_args
        - Src:             'ctrls.c:831,23'
          Dst:             push_array
        - Src:             'ctrls.c:837,17'
          Dst:             ctrls_lookup_next_action
        - Src:             'ctrls.c:840,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:841,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:842,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:843,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_ctrls_add_arg
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 345
      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:316,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:322,10'
          Dst:             __ctype_b_loc
        - Src:             'ctrls.c:323,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:332,28'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:333,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:337,27'
          Dst:             make_array
        - Src:             'ctrls.c:341,50'
          Dst:             pstrndup
        - Src:             'ctrls.c:341,15'
          Dst:             push_array
    - functionName:    pr_ctrls_copy_args
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 377
      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:351,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:366,32'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:367,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:373,29'
          Dst:             copy_array
    - functionName:    pr_ctrls_send_request
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 595
      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:532,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:538,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:542,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:543,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:545,10'
          Dst:             pr_json_object_alloc
        - Src:             'ctrls.c:547,9'
          Dst:             pr_json_object_set_string
        - Src:             'ctrls.c:548,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:551,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:552,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:554,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:558,10'
          Dst:             pr_json_array_alloc
        - Src:             'ctrls.c:561,11'
          Dst:             pr_json_array_append_string
        - Src:             'ctrls.c:562,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:565,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:566,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:567,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:569,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:574,9'
          Dst:             pr_json_object_set_array
        - Src:             'ctrls.c:575,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:578,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:579,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:580,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:582,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:586,9'
          Dst:             ctrls_send_msg
        - Src:             'ctrls.c:587,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:589,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:590,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:591,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:593,3'
          Dst:             __errno_location
    - functionName:    pr_ctrls_flush_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 464
      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:442,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:451,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:455,11'
          Dst:             pr_ctrls_send_response
    - functionName:    pr_ctrls_copy_resps
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 400
      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:383,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:392,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:396,30'
          Dst:             copy_array
    - functionName:    ctrls_action_new
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 125
      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:119,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:120,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:122,9'
          Dst:             pcalloc
    - functionName:    pr_ctrls_register
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 263
      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:212,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:216,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:221,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:224,9'
          Dst:             ctrls_action_new
        - Src:             'ctrls.c:230,29'
          Dst:             pr_random_next
        - Src:             'ctrls.c:247,17'
          Dst:             pstrdup
        - Src:             'ctrls.c:261,3'
          Dst:             pr_unblock_ctrls
    - functionName:    chk_on_blk_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 152
      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: 957
      functionLinenumberEnd: 965
      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: 99
      functionLinenumberEnd: 118
      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:110,5'
          Dst:             null_alloc
        - Src:             'pool.c:115,5'
          Dst:             null_alloc
    - functionName:    null_alloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 96
      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:89,3'
          Dst:             pr_log_pri
        - Src:             'pool.c:96,3'
          Dst:             exit
    - functionName:    malloc_block
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 132
      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:126,25'
          Dst:             smalloc
    - functionName:    subpools_in_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 293
      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:289,15'
          Dst:             subpools_in_pool
    - functionName:    unregister_cleanup
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 955
      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: 926
      functionLinenumberEnd: 929
      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:928,3'
          Dst:             register_cleanup2
    - functionName:    register_cleanup2
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 923
      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:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:916,7'
          Dst:             pcalloc
    - functionName:    pcalloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - palloc
      functionUses:    274
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:704,5'
          Dst:             __errno_location
        - Src:             'pool.c:708,9'
          Dst:             palloc
    - functionName:    palloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 692
      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:    84
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:692,10'
          Dst:             alloc_pool
    - functionName:    alloc_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          125
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - new_block
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:644,5'
          Dst:             __errno_location
        - Src:             'pool.c:654,5'
          Dst:             __errno_location
        - Src:             'pool.c:666,5'
          Dst:             __errno_location
        - Src:             'pool.c:678,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:680,10'
          Dst:             new_block
        - Src:             'pool.c:687,3'
          Dst:             pr_alarms_unblock
    - functionName:    new_block
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - malloc_block
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:225,10'
          Dst:             malloc_block
    - functionName:    append_arrays
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 898
      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:890,5'
          Dst:             __errno_location
        - Src:             'pool.c:894,9'
          Dst:             copy_array_hdr
        - Src:             'pool.c:896,3'
          Dst:             array_cat
    - functionName:    copy_array_hdr
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 881
      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:868,5'
          Dst:             __errno_location
        - Src:             'pool.c:872,9'
          Dst:             palloc
    - functionName:    array_cat
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 822
      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:821,10'
          Dst:             array_cat2
    - functionName:    array_cat2
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 818
      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:787,5'
          Dst:             __errno_location
        - Src:             'pool.c:806,16'
          Dst:             pcalloc
    - functionName:    copy_array_str
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 861
      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:850,5'
          Dst:             __errno_location
        - Src:             'pool.c:854,9'
          Dst:             copy_array
        - Src:             'pool.c:857,32'
          Dst:             pstrdup
    - functionName:    copy_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 841
      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:829,5'
          Dst:             __errno_location
        - Src:             'pool.c:833,9'
          Dst:             make_array
    - functionName:    make_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 753
      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:    57
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:736,5'
          Dst:             __errno_location
        - Src:             'pool.c:740,9'
          Dst:             palloc
        - Src:             'pool.c:746,15'
          Dst:             pcalloc
    - functionName:    push_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 780
      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:    85
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:766,5'
          Dst:             __errno_location
        - Src:             'pool.c:771,22'
          Dst:             pcalloc
    - functionName:    clear_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 762
      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:760,15'
          Dst:             pcalloc
    - functionName:    pcallocsz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pallocsz
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:719,5'
          Dst:             __errno_location
        - Src:             'pool.c:723,9'
          Dst:             pallocsz
    - functionName:    pallocsz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 696
      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:696,10'
          Dst:             alloc_pool
    - functionName:    free_blocks
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 181
      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:173,5'
          Dst:             chk_on_blk_list
        - Src:             'pool.c:178,3'
          Dst:             chk_on_blk_list
    - functionName:    clear_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 596
      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:575,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:578,3'
          Dst:             run_cleanups
        - Src:             'pool.c:583,5'
          Dst:             destroy_pool
        - Src:             'pool.c:588,3'
          Dst:             free_blocks
        - Src:             'pool.c:595,3'
          Dst:             pr_alarms_unblock
    - functionName:    destroy_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 631
      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:    253
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:603,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:619,3'
          Dst:             clear_pool
        - Src:             'pool.c:620,3'
          Dst:             free_blocks
        - Src:             'pool.c:622,3'
          Dst:             pr_alarms_unblock
    - functionName:    pool_release_free_block_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 486
      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:477,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:485,3'
          Dst:             pr_alarms_unblock
    - functionName:    free_pools
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_pool
        - pool_release_free_block_list
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:561,3'
          Dst:             destroy_pool
        - Src:             'pool.c:565,3'
          Dst:             pool_release_free_block_list
    - functionName:    init_pools
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 558
      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:554,22'
          Dst:             make_sub_pool
        - Src:             'pool.c:557,3'
          Dst:             pr_pool_tag
    - functionName:    make_sub_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 516
      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:    149
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:492,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:494,10'
          Dst:             new_block
        - Src:             'pool.c:514,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_pool_tag
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          31
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    125
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_pool_create_sz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - new_block
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:523,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:525,10'
          Dst:             new_block
        - Src:             'pool.c:545,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_pool_get_tag
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 471
      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:466,5'
          Dst:             __errno_location
    - functionName:    pr_pool_debug_set_flags
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 453
      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:447,5'
          Dst:             __errno_location
    - functionName:    blocks_in_block_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 265
      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: 268
      functionLinenumberEnd: 276
      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: 299
      functionLinenumberEnd: 335
      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:311,18'
          Dst:             bytes_in_block_list
        - Src:             'pool.c:312,19'
          Dst:             blocks_in_block_list
        - Src:             'pool.c:313,21'
          Dst:             subpools_in_pool
        - Src:             'pool.c:330,22'
          Dst:             visit_pools
    - functionName:    pool_visitf
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 398
      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: 410
      functionLinenumberEnd: 443
      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:420,22'
          Dst:             visit_pools
        - Src:             'pool.c:424,27'
          Dst:             bytes_in_block_list
        - Src:             'pool.c:425,28'
          Dst:             blocks_in_block_list
    - functionName:    pool_printf
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 349
      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:344,3'
          Dst:             pr_vsnprintf
        - Src:             'pool.c:348,3'
          Dst:             pr_trace_msg
    - functionName:    pr_pool_debug_memory
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 407
      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:406,3'
          Dst:             pr_pool_debug_memory2
        - Src:             'pool.c:406,3'
          Dst:             pool_visitf
    - functionName:    display_flush_lines
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 129
      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:98,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:101,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:110,7'
          Dst:             pr_response_send_raw
        - Src:             'display.c:116,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:119,9'
          Dst:             pr_response_send_raw
    - functionName:    display_add_line
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 92
      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:73,19'
          Dst:             pstrdup
        - Src:             'display.c:78,5'
          Dst:             pr_response_send_raw
        - Src:             'display.c:82,16'
          Dst:             pstrdup
        - Src:             'display.c:87,5'
          Dst:             pr_response_send_raw
        - Src:             'display.c:90,14'
          Dst:             pstrdup
    - functionName:    format_size_str
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 64
      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:49,5'
          Dst:             pr_signals_handle
        - Src:             'display.c:56,9'
          Dst:             pr_snprintf
    - functionName:    pr_display_file
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 499
      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:453,5'
          Dst:             __errno_location
        - Src:             'display.c:457,8'
          Dst:             pr_fsio_open_canon
        - Src:             'display.c:458,12'
          Dst:             __errno_location
        - Src:             'display.c:462,13'
          Dst:             strerror
        - Src:             'display.c:461,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:464,5'
          Dst:             __errno_location
        - Src:             'display.c:468,9'
          Dst:             pr_fsio_fstat
        - Src:             'display.c:469,12'
          Dst:             __errno_location
        - Src:             'display.c:473,13'
          Dst:             strerror
        - Src:             'display.c:472,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:475,5'
          Dst:             pr_fsio_close
        - Src:             'display.c:477,5'
          Dst:             __errno_location
        - Src:             'display.c:482,5'
          Dst:             pr_fsio_close
        - Src:             'display.c:486,61'
          Dst:             strerror
        - Src:             'display.c:485,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:488,5'
          Dst:             __errno_location
        - Src:             'display.c:492,9'
          Dst:             display_fh
        - Src:             'display.c:493,12'
          Dst:             __errno_location
        - Src:             'display.c:495,3'
          Dst:             pr_fsio_close
        - Src:             'display.c:497,3'
          Dst:             __errno_location
    - functionName:    display_fh
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 431
      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:160,7'
          Dst:             pr_fsio_fstat
        - Src:             'display.c:165,9'
          Dst:             pr_fs_fgetsize
        - Src:             'display.c:167,7'
          Dst:             __errno_location
        - Src:             'display.c:169,29'
          Dst:             __errno_location
        - Src:             'display.c:169,20'
          Dst:             strerror
        - Src:             'display.c:168,12'
          Dst:             pr_log_debug
        - Src:             'display.c:173,3'
          Dst:             pr_snprintf
        - Src:             'display.c:174,3'
          Dst:             format_size_str
        - Src:             'display.c:176,7'
          Dst:             make_sub_pool
        - Src:             'display.c:177,3'
          Dst:             pr_pool_tag
        - Src:             'display.c:181,28'
          Dst:             time
        - Src:             'display.c:181,13'
          Dst:             pr_strtime3
        - Src:             'display.c:183,17'
          Dst:             get_param_ptr
        - Src:             'display.c:185,7'
          Dst:             pr_table_get
        - Src:             'display.c:190,3'
          Dst:             pr_snprintf
        - Src:             'display.c:199,9'
          Dst:             pr_table_get
        - Src:             'display.c:204,5'
          Dst:             pr_snprintf
        - Src:             'display.c:212,12'
          Dst:             find_config
        - Src:             'display.c:216,7'
          Dst:             pr_signals_handle
        - Src:             'display.c:218,11'
          Dst:             strcmp
        - Src:             'display.c:219,16'
          Dst:             find_config_next
        - Src:             'display.c:229,14'
          Dst:             find_config
        - Src:             'display.c:235,5'
          Dst:             pr_snprintf
        - Src:             'display.c:238,5'
          Dst:             pr_snprintf
        - Src:             'display.c:240,5'
          Dst:             pr_snprintf
        - Src:             'display.c:243,3'
          Dst:             pr_snprintf
        - Src:             'display.c:247,5'
          Dst:             pr_snprintf
        - Src:             'display.c:251,5'
          Dst:             pr_snprintf
        - Src:             'display.c:255,5'
          Dst:             pr_snprintf
        - Src:             'display.c:259,5'
          Dst:             pr_snprintf
        - Src:             'display.c:263,3'
          Dst:             pr_snprintf
        - Src:             'display.c:265,10'
          Dst:             pr_table_get
        - Src:             'display.c:270,7'
          Dst:             find_config
        - Src:             'display.c:279,20'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'display.c:284,3'
          Dst:             pr_snprintf
        - Src:             'display.c:288,3'
          Dst:             pr_snprintf
        - Src:             'display.c:292,3'
          Dst:             pr_snprintf
        - Src:             'display.c:296,19'
          Dst:             pr_table_get
        - Src:             'display.c:301,10'
          Dst:             pr_fsio_gets
        - Src:             'display.c:304,5'
          Dst:             pr_signals_handle
        - Src:             'display.c:307,11'
          Dst:             strlen
        - Src:             'display.c:316,11'
          Dst:             strstr
        - Src:             'display.c:321,7'
          Dst:             pr_signals_handle
        - Src:             'display.c:323,14'
          Dst:             strchr
        - Src:             'display.c:325,15'
          Dst:             strstr
        - Src:             'display.c:329,13'
          Dst:             pstrndup
        - Src:             'display.c:341,11'
          Dst:             strncmp
        - Src:             'display.c:346,36'
          Dst:             strlen
        - Src:             'display.c:346,15'
          Dst:             pstrndup
        - Src:             'display.c:348,9'
          Dst:             time
        - Src:             'display.c:351,14'
          Dst:             pr_localtime
        - Src:             'display.c:353,11'
          Dst:             strftime
        - Src:             'display.c:356,15'
          Dst:             pstrdup
        - Src:             'display.c:358,18'
          Dst:             strncmp
        - Src:             'display.c:361,40'
          Dst:             strlen
        - Src:             'display.c:361,19'
          Dst:             pstrndup
        - Src:             'display.c:362,15'
          Dst:             pr_env_get
        - Src:             'display.c:364,11'
          Dst:             pr_trace_msg
        - Src:             'display.c:371,15'
          Dst:             pr_var_get
        - Src:             'display.c:375,22'
          Dst:             __errno_location
        - Src:             'display.c:375,13'
          Dst:             strerror
        - Src:             'display.c:373,11'
          Dst:             pr_trace_msg
        - Src:             'display.c:380,14'
          Dst:             sreplace
        - Src:             'display.c:381,7'
          Dst:             sstrncpy
        - Src:             'display.c:383,13'
          Dst:             strstr
        - Src:             'display.c:386,12'
          Dst:             sreplace
        - Src:             'display.c:410,5'
          Dst:             sstrncpy
        - Src:             'display.c:419,7'
          Dst:             display_add_line
        - Src:             'display.c:422,7'
          Dst:             pr_response_add
        - Src:             'display.c:427,5'
          Dst:             display_flush_lines
        - Src:             'display.c:430,3'
          Dst:             destroy_pool
    - functionName:    pr_display_fh
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 443
      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:438,5'
          Dst:             __errno_location
        - Src:             'display.c:442,10'
          Dst:             display_fh
    - functionName:    copy_recur
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2442
      functionLinenumberEnd: 2482
      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:2448,12'
          Dst:             xaset_create
        - Src:             'dirtree.c:2451,13'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:2462,21'
          Dst:             pcalloc
        - Src:             'dirtree.c:2478,7'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2479,7'
          Dst:             copy_recur
    - functionName:    copy_global_to_all
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2484
      functionLinenumberEnd: 2499
      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:2495,7'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2496,7'
          Dst:             copy_recur
    - functionName:    strmatch
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 447
      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:437,12'
          Dst:             strlen
    - functionName:    find_best_dir
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2172
      functionLinenumberEnd: 2253
      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:2180,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:2184,13'
          Dst:             strlen
        - Src:             'dirtree.c:2187,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2204,13'
          Dst:             strlen
        - Src:             'dirtree.c:2236,11'
          Dst:             strncmp
        - Src:             'dirtree.c:2237,16'
          Dst:             find_best_dir
        - Src:             'dirtree.c:2238,21'
          Dst:             strmatch
    - functionName:    reparent_all
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2153
      functionLinenumberEnd: 2167
      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:2157,25'
          Dst:             xaset_create
        - Src:             'dirtree.c:2162,5'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2163,5'
          Dst:             xaset_insert
    - functionName:    check_ip_positive
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1112
      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:1093,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1089,9'
          Dst:             pr_netacl_get_negated
        - Src:             'dirtree.c:1093,13'
          Dst:             pr_netacl_match
    - functionName:    check_ip_negative
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1079
      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:1053,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1049,9'
          Dst:             pr_netacl_get_negated
        - Src:             'dirtree.c:1053,13'
          Dst:             pr_netacl_match
        - Src:             'dirtree.c:1064,9'
          Dst:             pr_log_pri
    - functionName:    check_filter_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1025
      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:994,7'
          Dst:             find_config
        - Src:             'dirtree.c:999,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1003,46'
          Dst:             pr_regexp_get_pattern
        - Src:             'dirtree.c:1001,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1004,15'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:1007,46'
          Dst:             pr_regexp_get_pattern
        - Src:             'dirtree.c:1005,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1015,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:1018,3'
          Dst:             pr_trace_msg
    - functionName:    check_ip_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1141
      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:1118,7'
          Dst:             find_config
        - Src:             'dirtree.c:1120,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1125,9'
          Dst:             check_ip_negative
        - Src:             'dirtree.c:1130,9'
          Dst:             check_ip_positive
        - Src:             'dirtree.c:1137,9'
          Dst:             find_config_next
    - functionName:    check_class_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 983
      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:950,7'
          Dst:             find_config
        - Src:             'dirtree.c:952,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:958,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:967,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'dirtree.c:973,13'
          Dst:             pr_expr_eval_class_and
        - Src:             'dirtree.c:979,9'
          Dst:             find_config_next
    - functionName:    check_group_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 939
      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:896,7'
          Dst:             find_config
        - Src:             'dirtree.c:902,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:911,15'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:923,13'
          Dst:             pr_expr_eval_group_or
        - Src:             'dirtree.c:929,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'dirtree.c:935,9'
          Dst:             find_config_next
    - functionName:    check_user_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 883
      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:851,7'
          Dst:             find_config
        - Src:             'dirtree.c:853,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:859,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:867,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'dirtree.c:873,13'
          Dst:             pr_expr_eval_user_and
        - Src:             'dirtree.c:879,9'
          Dst:             find_config_next
    - functionName:    check_limit_allow
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1193
      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:1156,9'
          Dst:             find_config
        - Src:             'dirtree.c:1160,14'
          Dst:             check_user_access
        - Src:             'dirtree.c:1165,9'
          Dst:             find_config
        - Src:             'dirtree.c:1169,14'
          Dst:             check_group_access
        - Src:             'dirtree.c:1174,7'
          Dst:             check_class_access
        - Src:             'dirtree.c:1178,7'
          Dst:             check_ip_access
        - Src:             'dirtree.c:1182,7'
          Dst:             check_filter_access
        - Src:             'dirtree.c:1186,15'
          Dst:             get_param_ptr
    - functionName:    check_limit_deny
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1228
      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:1198,14'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1205,7'
          Dst:             check_user_access
        - Src:             'dirtree.c:1210,7'
          Dst:             check_group_access
        - Src:             'dirtree.c:1215,7'
          Dst:             check_class_access
        - Src:             'dirtree.c:1219,7'
          Dst:             check_ip_access
        - Src:             'dirtree.c:1223,7'
          Dst:             check_filter_access
    - functionName:    pr_config_get_server_xfer_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3042
      functionLinenumberEnd: 3057
      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:3044,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:3056,10'
          Dst:             pr_config_get_xfer_bufsz2
    - functionName:    pr_config_get_xfer_bufsz2
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3030
      functionLinenumberEnd: 3040
      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:3031,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_config_get_xfer_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3026
      functionLinenumberEnd: 3027
      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: 3022
      functionLinenumberEnd: 3023
      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:3023,10'
          Dst:             pr_cmd_get_displayable_str
    - functionName:    get_boolean
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3016
      functionLinenumberEnd: 3019
      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:    52
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:3019,10'
          Dst:             pr_str_is_boolean
    - functionName:    get_context_name
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2957
      functionLinenumberEnd: 3014
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - pr_snprintf
      functionUses:    171
      BranchProfiles:
        - Branch String:   'dirtree.c:2975,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:3009,7'
          Dst:             pr_snprintf
    - functionName:    check_context
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2938
      functionLinenumberEnd: 2955
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    172
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_tcp_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2751
      functionLinenumberEnd: 2874
      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:2757,3'
          Dst:             setprotoent
        - Src:             'dirtree.c:2760,7'
          Dst:             getprotobyname
        - Src:             'dirtree.c:2766,3'
          Dst:             endprotoent
        - Src:             'dirtree.c:2782,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2782,64'
          Dst:             strerror
        - Src:             'dirtree.c:2782,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2783,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2797,12'
          Dst:             socket
        - Src:             'dirtree.c:2802,55'
          Dst:             __errno_location
        - Src:             'dirtree.c:2802,46'
          Dst:             strerror
        - Src:             'dirtree.c:2802,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2803,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2811,7'
          Dst:             getsockopt
        - Src:             'dirtree.c:2815,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2815,64'
          Dst:             strerror
        - Src:             'dirtree.c:2815,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2816,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2827,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2841,7'
          Dst:             getsockopt
        - Src:             'dirtree.c:2845,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2845,64'
          Dst:             strerror
        - Src:             'dirtree.c:2845,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2846,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2857,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2873,10'
          Dst:             close
    - functionName:    init_dirtree
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2876
      functionLinenumberEnd: 2934
      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:2877,24'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:2878,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:2893,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2896,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2905,17'
          Dst:             xaset_create
        - Src:             'dirtree.c:2907,18'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:2908,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:2910,32'
          Dst:             pcalloc
        - Src:             'dirtree.c:2911,3'
          Dst:             xaset_insert
        - Src:             'dirtree.c:2916,24'
          Dst:             pr_table_nalloc
        - Src:             'dirtree.c:2922,32'
          Dst:             palloc
        - Src:             'dirtree.c:2930,29'
          Dst:             pr_inet_getservport
        - Src:             'dirtree.c:2933,3'
          Dst:             set_tcp_bufsz
    - functionName:    fixup_globals
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2501
      functionLinenumberEnd: 2538
      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:2519,11'
          Dst:             strcmp
        - Src:             'dirtree.c:2525,11'
          Dst:             copy_global_to_all
        - Src:             'dirtree.c:2528,9'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2532,11'
          Dst:             destroy_pool
    - functionName:    fixup_servers
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2570
      functionLinenumberEnd: 2749
      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:2574,3'
          Dst:             fixup_globals
        - Src:             'dirtree.c:2580,9'
          Dst:             find_config
        - Src:             'dirtree.c:2582,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2585,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2596,26'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'dirtree.c:2597,17'
          Dst:             pr_netaddr_get_addr
        - Src:             'dirtree.c:2607,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2609,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'dirtree.c:2610,27'
          Dst:             pcalloc
        - Src:             'dirtree.c:2611,17'
          Dst:             pr_netaddr_get_family
        - Src:             'dirtree.c:2616,15'
          Dst:             pr_snprintf
        - Src:             'dirtree.c:2617,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2623,13'
          Dst:             pr_conf_add_server_config_param_str
        - Src:             'dirtree.c:2634,17'
          Dst:             pr_netaddr_get_addr2
        - Src:             'dirtree.c:2646,11'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2650,11'
          Dst:             pr_session_end
        - Src:             'dirtree.c:2660,7'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2662,7'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2665,9'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2672,21'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'dirtree.c:2679,24'
          Dst:             pstrcat
        - Src:             'dirtree.c:2683,11'
          Dst:             find_config
        - Src:             'dirtree.c:2685,25'
          Dst:             pstrdup
        - Src:             'dirtree.c:2691,25'
          Dst:             pstrdup
        - Src:             'dirtree.c:2703,9'
          Dst:             find_config
        - Src:             'dirtree.c:2708,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2715,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2714,7'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2721,22'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2727,9'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'dirtree.c:2730,9'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2735,5'
          Dst:             fixup_dirs
        - Src:             'dirtree.c:2743,5'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2747,3'
          Dst:             pr_inet_clear
    - functionName:    fixup_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2540
      functionLinenumberEnd: 2564
      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:2547,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2548,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2554,3'
          Dst:             reorder_dirs
        - Src:             'dirtree.c:2557,3'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:2560,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2561,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2562,5'
          Dst:             pr_config_dump
    - functionName:    reorder_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2259
      functionLinenumberEnd: 2325
      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:2279,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2295,11'
          Dst:             strcmp
        - Src:             'dirtree.c:2298,11'
          Dst:             reparent_all
        - Src:             'dirtree.c:2301,9'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2304,21'
          Dst:             find_best_dir
        - Src:             'dirtree.c:2307,33'
          Dst:             xaset_create
        - Src:             'dirtree.c:2310,11'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2311,11'
          Dst:             xaset_insert
        - Src:             'dirtree.c:2322,7'
          Dst:             reorder_dirs
    - functionName:    resolve_deferred_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2391
      functionLinenumberEnd: 2439
      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:2405,11'
          Dst:             pr_trace_get_level
        - Src:             'dirtree.c:2406,21'
          Dst:             pstrdup
        - Src:             'dirtree.c:2410,26'
          Dst:             path_subst_uservar
        - Src:             'dirtree.c:2413,20'
          Dst:             dir_interpolate
        - Src:             'dirtree.c:2421,18'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2426,20'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:2432,7'
          Dst:             pr_trace_msg
    - functionName:    resolve_anonymous_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2360
      functionLinenumberEnd: 2388
      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:2371,19'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2376,21'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:2384,9'
          Dst:             resolve_anonymous_dirs
    - functionName:    dir_check_canon
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2146
      functionLinenumberEnd: 2147
      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:2147,36'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2147,10'
          Dst:             dir_check
    - functionName:    dir_check
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1973
      functionLinenumberEnd: 2139
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         178
      ICount:          898
      EdgeCount:       240
      CyclomaticComplexity: 64
      functionsReached:
        - __errno_location
        - build_dyn_config2
        - destroy_pool
        - dir_check_full
        - dir_check_limits
        - dir_check_op
        - dir_hide_file
        - dir_match_path
        - get_param_ptr
        - is_ancestor_path
        - 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:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1983,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1987,7'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:1988,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:1993,16'
          Dst:             pdircat
        - Src:             'dirtree.c:2000,7'
          Dst:             is_ancestor_path
        - Src:             'dirtree.c:2001,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2002,12'
          Dst:             dir_check_full
        - Src:             'dirtree.c:2006,12'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:2011,3'
          Dst:             build_dyn_config2
        - Src:             'dirtree.c:2014,18'
          Dst:             dir_hide_file
        - Src:             'dirtree.c:2019,28'
          Dst:             dir_match_path
        - Src:             'dirtree.c:2021,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:2032,19'
          Dst:             pr_cmd_get_id
        - Src:             'dirtree.c:2038,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2039,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2042,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2044,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:2053,28'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2061,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2066,10'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:2072,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2076,9'
          Dst:             strcmp
        - Src:             'dirtree.c:2079,12'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:2093,18'
          Dst:             dir_check_op
        - Src:             'dirtree.c:2096,11'
          Dst:             dir_check_op
        - Src:             'dirtree.c:2101,11'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2108,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2116,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2117,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2118,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2119,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2120,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2121,9'
          Dst:             strncmp
        - Src:             'dirtree.c:2122,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2129,47'
          Dst:             umask
        - Src:             'dirtree.c:2128,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2132,3'
          Dst:             destroy_pool
    - functionName:    is_ancestor_path
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 1966
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1952,22'
          Dst:             strlen
        - Src:             'dirtree.c:1953,13'
          Dst:             strlen
        - Src:             'dirtree.c:1960,7'
          Dst:             strncmp
    - functionName:    dir_check_full
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1779
      functionLinenumberEnd: 1944
      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_config2
        - 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:1789,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1793,7'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:1794,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:1799,16'
          Dst:             pdircat
        - Src:             'dirtree.c:1804,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1809,12'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:1814,3'
          Dst:             build_dyn_config2
        - Src:             'dirtree.c:1817,18'
          Dst:             dir_hide_file
        - Src:             'dirtree.c:1822,28'
          Dst:             dir_match_path
        - Src:             'dirtree.c:1824,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1834,19'
          Dst:             pr_cmd_get_id
        - Src:             'dirtree.c:1840,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1841,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1844,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1846,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1855,28'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1863,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1868,10'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:1874,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1878,9'
          Dst:             strcmp
        - Src:             'dirtree.c:1881,12'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:1893,18'
          Dst:             dir_check_op
        - Src:             'dirtree.c:1896,11'
          Dst:             dir_check_op
        - Src:             'dirtree.c:1905,11'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1912,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1920,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1921,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1922,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1923,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1924,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1925,9'
          Dst:             strncmp
        - Src:             'dirtree.c:1926,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1934,47'
          Dst:             umask
        - Src:             'dirtree.c:1932,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1937,3'
          Dst:             destroy_pool
    - functionName:    build_dyn_config2
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1761
      functionLinenumberEnd: 1763
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - build_dyn_config
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1762,3'
          Dst:             build_dyn_config
    - functionName:    dir_hide_file
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 325
      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:166,14'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:167,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:173,14'
          Dst:             pstrdup
        - Src:             'dirtree.c:175,15'
          Dst:             strrchr
        - Src:             'dirtree.c:187,11'
          Dst:             strlen
        - Src:             'dirtree.c:201,19'
          Dst:             get_dir_ctxt
        - Src:             'dirtree.c:201,7'
          Dst:             find_config
        - Src:             'dirtree.c:205,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:209,11'
          Dst:             strcasecmp
        - Src:             'dirtree.c:210,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'dirtree.c:224,18'
          Dst:             strcasecmp
        - Src:             'dirtree.c:225,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'dirtree.c:242,18'
          Dst:             strcasecmp
        - Src:             'dirtree.c:243,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'dirtree.c:258,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:273,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:280,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:286,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:290,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:295,9'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:296,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:298,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:308,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:310,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:320,3'
          Dst:             destroy_pool
    - functionName:    dir_match_path
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 609
      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:568,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:572,9'
          Dst:             pstrdup
        - Src:             'dirtree.c:573,12'
          Dst:             strlen
        - Src:             'dirtree.c:577,14'
          Dst:             strlen
        - Src:             'dirtree.c:585,11'
          Dst:             recur_match_path
        - Src:             'dirtree.c:589,46'
          Dst:             strlen
        - Src:             'dirtree.c:589,12'
          Dst:             strncmp
        - Src:             'dirtree.c:596,11'
          Dst:             recur_match_path
        - Src:             'dirtree.c:600,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:605,21'
          Dst:             __errno_location
        - Src:             'dirtree.c:605,12'
          Dst:             strerror
        - Src:             'dirtree.c:604,5'
          Dst:             pr_trace_msg
    - functionName:    dir_check_op
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 838
      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:622,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:624,11'
          Dst:             find_config
        - Src:             'dirtree.c:630,9'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:635,13'
          Dst:             strcmp
        - Src:             'dirtree.c:641,16'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:643,13'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:646,17'
          Dst:             find_config_next
        - Src:             'dirtree.c:655,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:663,11'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:669,13'
          Dst:             find_config_next
        - Src:             'dirtree.c:678,13'
          Dst:             find_config
        - Src:             'dirtree.c:684,11'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:689,15'
          Dst:             strcmp
        - Src:             'dirtree.c:695,18'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:697,15'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:701,19'
          Dst:             find_config_next
        - Src:             'dirtree.c:711,17'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:720,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:734,17'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:746,19'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:757,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:764,15'
          Dst:             find_config_next
        - Src:             'dirtree.c:775,26'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:783,19'
          Dst:             pr_fsio_access
        - Src:             'dirtree.c:786,28'
          Dst:             __errno_location
        - Src:             'dirtree.c:790,23'
          Dst:             strerror
        - Src:             'dirtree.c:788,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:791,15'
          Dst:             __errno_location
        - Src:             'dirtree.c:798,19'
          Dst:             pr_fsio_access
        - Src:             'dirtree.c:801,28'
          Dst:             __errno_location
        - Src:             'dirtree.c:805,17'
          Dst:             strerror
        - Src:             'dirtree.c:803,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:806,15'
          Dst:             __errno_location
        - Src:             'dirtree.c:816,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:817,18'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:828,17'
          Dst:             strerror
        - Src:             'dirtree.c:826,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:830,9'
          Dst:             __errno_location
    - functionName:    dir_check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1469
      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:1459,11'
          Dst:             check_limits
        - Src:             'dirtree.c:1466,11'
          Dst:             check_limits
    - functionName:    check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1452
      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:1430,7'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1386,3'
          Dst:             __errno_location
        - Src:             'dirtree.c:1393,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1399,13'
          Dst:             strcasecmp
        - Src:             'dirtree.c:1418,18'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1425,11'
          Dst:             __errno_location
        - Src:             'dirtree.c:1430,15'
          Dst:             check_limit
        - Src:             'dirtree.c:1447,7'
          Dst:             __errno_location
        - Src:             'dirtree.c:1448,5'
          Dst:             __errno_location
    - functionName:    check_limit
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1234
      functionLinenumberEnd: 1273
      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:1237,9'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1243,9'
          Dst:             check_limit_deny
        - Src:             'dirtree.c:1245,7'
          Dst:             __errno_location
        - Src:             'dirtree.c:1249,9'
          Dst:             check_limit_allow
        - Src:             'dirtree.c:1255,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1260,7'
          Dst:             check_limit_allow
        - Src:             'dirtree.c:1265,7'
          Dst:             check_limit_deny
        - Src:             'dirtree.c:1267,5'
          Dst:             __errno_location
    - functionName:    recur_match_path
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 558
      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:454,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:466,24'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:469,20'
          Dst:             pdircat
        - Src:             'dirtree.c:473,11'
          Dst:             strcmp
        - Src:             'dirtree.c:474,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:490,18'
          Dst:             strlen
        - Src:             'dirtree.c:500,15'
          Dst:             strcmp
        - Src:             'dirtree.c:501,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:507,25'
          Dst:             pdircat
        - Src:             'dirtree.c:511,25'
          Dst:             pstrcat
        - Src:             'dirtree.c:519,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:530,11'
          Dst:             pr_fnmatch
        - Src:             'dirtree.c:531,12'
          Dst:             pr_str_is_fnmatch
        - Src:             'dirtree.c:532,12'
          Dst:             pr_fnmatch
        - Src:             'dirtree.c:533,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:540,17'
          Dst:             recur_match_path
        - Src:             'dirtree.c:542,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:549,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:556,3'
          Dst:             __errno_location
    - functionName:    get_dir_ctxt
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 143
      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:130,19'
          Dst:             pdircat
        - Src:             'dirtree.c:133,19'
          Dst:             pdircat
        - Src:             'dirtree.c:137,17'
          Dst:             pdircat
        - Src:             'dirtree.c:140,7'
          Dst:             dir_match_path
    - functionName:    build_dyn_config
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1502
      functionLinenumberEnd: 1759
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1531,8'
          Dst:             allow_dyn_config
        - Src:             'dirtree.c:1537,19'
          Dst:             pstrdup
        - Src:             'dirtree.c:1546,11'
          Dst:             strrchr
        - Src:             'dirtree.c:1555,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1557,24'
          Dst:             strlen
        - Src:             'dirtree.c:1583,22'
          Dst:             pdircat
        - Src:             'dirtree.c:1592,24'
          Dst:             pdircat
        - Src:             'dirtree.c:1595,27'
          Dst:             strlen
        - Src:             'dirtree.c:1608,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1610,16'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:1616,9'
          Dst:             dir_match_path
        - Src:             'dirtree.c:1624,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1626,11'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:1629,17'
          Dst:             pcalloc
        - Src:             'dirtree.c:1636,11'
          Dst:             strcmp
        - Src:             'dirtree.c:1639,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1641,16'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:1644,22'
          Dst:             pcalloc
        - Src:             'dirtree.c:1649,18'
          Dst:             strcmp
        - Src:             'dirtree.c:1663,15'
          Dst:             xaset_remove
        - Src:             'dirtree.c:1671,11'
          Dst:             destroy_pool
        - Src:             'dirtree.c:1679,13'
          Dst:             xaset_remove
        - Src:             'dirtree.c:1692,20'
          Dst:             pcalloc
        - Src:             'dirtree.c:1697,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1699,7'
          Dst:             pr_parser_prepare
        - Src:             'dirtree.c:1700,13'
          Dst:             pr_parser_parse_file
        - Src:             'dirtree.c:1702,7'
          Dst:             pr_parser_cleanup
        - Src:             'dirtree.c:1706,9'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:1708,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1709,9'
          Dst:             fixup_dirs
        - Src:             'dirtree.c:1712,22'
          Dst:             __errno_location
        - Src:             'dirtree.c:1715,11'
          Dst:             strerror
        - Src:             'dirtree.c:1714,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1717,11'
          Dst:             strerror
        - Src:             'dirtree.c:1716,9'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1725,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1726,7'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:1734,11'
          Dst:             strrchr
        - Src:             'dirtree.c:1743,13'
          Dst:             strcmp
    - functionName:    allow_dyn_config
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 91
      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:64,7'
          Dst:             find_config
        - Src:             'dirtree.c:66,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:78,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:86,5'
          Dst:             pr_trace_msg
    - functionName:    login_check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1281
      functionLinenumberEnd: 1377
      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:1307,11'
          Branch Sides:    []
        - Branch String:   'dirtree.c:1325,11'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1300,13'
          Dst:             strcasecmp
        - Src:             'dirtree.c:1307,19'
          Dst:             check_limit
        - Src:             'dirtree.c:1325,19'
          Dst:             check_limit
        - Src:             'dirtree.c:1347,25'
          Dst:             login_check_limits
        - Src:             'dirtree.c:1356,18'
          Dst:             login_check_limits
    - functionName:    kludge_enable_umask
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 424
      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: 418
      functionLinenumberEnd: 420
      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: 382
      functionLinenumberEnd: 416
      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:384,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:395,11'
          Dst:             strcmp
        - Src:             'dirtree.c:408,11'
          Dst:             strcmp
        - Src:             'dirtree.c:414,3'
          Dst:             __errno_location
    - functionName:    define_restart_ev
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 335
      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:329,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:334,3'
          Dst:             pr_event_unregister
        - Src:             'dirtree.c:334,3'
          Dst:             define_restart_ev
    - functionName:    pr_define_add
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 380
      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:348,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:354,22'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:355,7'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:356,7'
          Dst:             pr_event_register
        - Src:             'dirtree.c:356,7'
          Dst:             define_restart_ev
        - Src:             'dirtree.c:360,22'
          Dst:             make_array
        - Src:             'dirtree.c:364,45'
          Dst:             pstrdup
        - Src:             'dirtree.c:364,17'
          Dst:             push_array
        - Src:             'dirtree.c:369,25'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:370,5'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:374,25'
          Dst:             make_array
        - Src:             'dirtree.c:378,5'
          Dst:             pstrdup
        - Src:             'dirtree.c:377,15'
          Dst:             push_array
    - functionName:    is_dotdir
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 108
      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:100,7'
          Dst:             strcmp
        - Src:             'dirtree.c:101,7'
          Dst:             strcmp
        - Src:             'dirtree.c:102,7'
          Dst:             strcmp
        - Src:             'dirtree.c:103,7'
          Dst:             strcmp
    - functionName:    config_type_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 296
      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:247,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    init_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 998
      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:964,5'
          Dst:             destroy_pool
        - Src:             'configdb.c:972,12'
          Dst:             pr_table_empty
        - Src:             'configdb.c:973,12'
          Dst:             pr_table_free
        - Src:             'configdb.c:975,18'
          Dst:             pr_table_alloc
        - Src:             'configdb.c:984,23'
          Dst:             make_sub_pool
        - Src:             'configdb.c:985,5'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:986,18'
          Dst:             pr_table_alloc
        - Src:             'configdb.c:994,7'
          Dst:             pr_table_ctl
        - Src:             'configdb.c:996,25'
          Dst:             __errno_location
        - Src:             'configdb.c:996,16'
          Dst:             strerror
        - Src:             'configdb.c:995,5'
          Dst:             pr_log_debug
    - functionName:    add_config_param
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 892
      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:    122
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:869,5'
          Dst:             __errno_location
        - Src:             'configdb.c:873,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:879,15'
          Dst:             pcalloc
    - functionName:    pr_config_add
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 189
      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:150,9'
          Dst:             pr_parser_server_ctxt_get
        - Src:             'configdb.c:154,5'
          Dst:             __errno_location
        - Src:             'configdb.c:158,7'
          Dst:             pr_parser_config_ctxt_get
        - Src:             'configdb.c:171,11'
          Dst:             make_sub_pool
        - Src:             'configdb.c:172,7'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:182,12'
          Dst:             xaset_create
        - Src:             'configdb.c:185,7'
          Dst:             pr_config_add_set
    - functionName:    pr_config_add_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 135
      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:109,5'
          Dst:             __errno_location
        - Src:             'configdb.c:117,16'
          Dst:             make_sub_pool
        - Src:             'configdb.c:118,5'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:120,12'
          Dst:             xaset_create
        - Src:             'configdb.c:128,15'
          Dst:             pr_pool_create_sz
        - Src:             'configdb.c:129,3'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:131,7'
          Dst:             pr_config_alloc
        - Src:             'configdb.c:132,3'
          Dst:             pr_config_add_config_to_set
    - functionName:    pr_config_alloc
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 67
      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:53,5'
          Dst:             __errno_location
        - Src:             'configdb.c:57,22'
          Dst:             pcalloc
        - Src:             'configdb.c:62,15'
          Dst:             pstrdup
        - Src:             'configdb.c:63,20'
          Dst:             pr_config_set_id
    - functionName:    pr_config_add_config_to_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 101
      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:76,5'
          Dst:             __errno_location
        - Src:             'configdb.c:89,5'
          Dst:             xaset_insert
        - Src:             'configdb.c:92,5'
          Dst:             xaset_insert_end
        - Src:             'configdb.c:98,3'
          Dst:             pr_event_generate
    - functionName:    pr_config_set_id
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 957
      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:923,5'
          Dst:             __errno_location
        - Src:             'configdb.c:928,5'
          Dst:             __errno_location
        - Src:             'configdb.c:932,9'
          Dst:             pr_table_pcalloc
        - Src:             'configdb.c:935,7'
          Dst:             pr_table_add
        - Src:             'configdb.c:936,9'
          Dst:             __errno_location
        - Src:             'configdb.c:937,12'
          Dst:             pr_config_get_id
        - Src:             'configdb.c:940,11'
          Dst:             __errno_location
        - Src:             'configdb.c:941,9'
          Dst:             pr_log_debug
        - Src:             'configdb.c:946,26'
          Dst:             __errno_location
        - Src:             'configdb.c:946,17'
          Dst:             strerror
        - Src:             'configdb.c:945,9'
          Dst:             pr_log_debug
    - functionName:    pr_config_get_id
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 916
      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:899,5'
          Dst:             __errno_location
        - Src:             'configdb.c:904,5'
          Dst:             __errno_location
        - Src:             'configdb.c:908,9'
          Dst:             pr_table_get
        - Src:             'configdb.c:910,5'
          Dst:             __errno_location
    - functionName:    pr_conf_add_server_config_param_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 862
      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:838,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:845,13'
          Dst:             pcalloc
        - Src:             'configdb.c:853,17'
          Dst:             pstrdup
    - functionName:    add_config_param_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 828
      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:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:806,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:810,15'
          Dst:             pcalloc
        - Src:             'configdb.c:818,19'
          Dst:             pstrdup
    - functionName:    add_config_param_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 798
      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:779,7'
          Dst:             pr_config_add_set
        - Src:             'configdb.c:786,13'
          Dst:             pcalloc
    - functionName:    remove_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 770
      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:770,10'
          Dst:             pr_config_remove
    - functionName:    pr_config_remove
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 766
      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:731,7'
          Dst:             pr_parser_server_ctxt_get
        - Src:             'configdb.c:736,15'
          Dst:             find_config
        - Src:             'configdb.c:739,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:744,5'
          Dst:             xaset_remove
        - Src:             'configdb.c:747,12'
          Dst:             pr_table_remove
        - Src:             'configdb.c:762,7'
          Dst:             destroy_pool
    - functionName:    find_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 679
      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:    148
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:679,10'
          Dst:             find_config2
    - functionName:    find_config2
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 676
      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:668,5'
          Dst:             __errno_location
        - Src:             'configdb.c:672,3'
          Dst:             find_config_set_top
        - Src:             'configdb.c:674,10'
          Dst:             find_config_next2
    - functionName:    find_config_set_top
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 661
      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: 496
      functionLinenumberEnd: 646
      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:522,5'
          Dst:             __errno_location
        - Src:             'configdb.c:531,11'
          Dst:             pr_config_get_id
        - Src:             'configdb.c:532,15'
          Dst:             strlen
        - Src:             'configdb.c:539,7'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:550,13'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:576,19'
          Dst:             find_config_next2
        - Src:             'configdb.c:601,7'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:615,13'
          Dst:             strncmp
        - Src:             'configdb.c:644,3'
          Dst:             __errno_location
    - functionName:    get_param_ptr_next
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 724
      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:709,5'
          Dst:             __errno_location
        - Src:             'configdb.c:713,7'
          Dst:             find_config_next
        - Src:             'configdb.c:722,3'
          Dst:             __errno_location
    - functionName:    find_config_next
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 650
      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:650,10'
          Dst:             find_config_next2
    - functionName:    get_param_ptr
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 701
      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:    118
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:687,5'
          Dst:             __errno_location
        - Src:             'configdb.c:691,7'
          Dst:             find_config
        - Src:             'configdb.c:699,3'
          Dst:             __errno_location
    - functionName:    copy_config_from
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 407
      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:381,19'
          Dst:             xaset_create
        - Src:             'configdb.c:384,7'
          Dst:             pr_config_add_set
        - Src:             'configdb.c:394,13'
          Dst:             pcalloc
        - Src:             'configdb.c:401,5'
          Dst:             pr_signals_handle
    - functionName:    config_cmp
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 365
      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:310,5'
          Dst:             __errno_location
        - Src:             'configdb.c:317,23'
          Dst:             config_type_str
        - Src:             'configdb.c:318,7'
          Dst:             config_type_str
        - Src:             'configdb.c:315,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:323,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:330,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:341,9'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:350,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:357,7'
          Dst:             strcmp
        - Src:             'configdb.c:358,5'
          Dst:             pr_trace_msg
    - functionName:    pr_config_merge_down
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 493
      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:418,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:431,15'
          Dst:             find_config
        - Src:             'configdb.c:460,15'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:462,19'
          Dst:             config_cmp
        - Src:             'configdb.c:465,17'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:473,22'
          Dst:             copy_config_from
        - Src:             'configdb.c:478,20'
          Dst:             copy_config_from
        - Src:             'configdb.c:490,7'
          Dst:             pr_config_merge_down
    - functionName:    config_dumpf
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 206
      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:200,3'
          Dst:             pr_vsnprintf
        - Src:             'configdb.c:205,3'
          Dst:             pr_log_debug
    - functionName:    pr_config_dump
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 242
      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:225,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:236,19'
          Dst:             make_sub_pool
        - Src:             'configdb.c:237,7'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:238,40'
          Dst:             pstrcat
        - Src:             'configdb.c:238,7'
          Dst:             pr_config_dump
        - Src:             'configdb.c:239,7'
          Dst:             destroy_pool
    - functionName:    add_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 192
      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:192,10'
          Dst:             pr_config_add
    - functionName:    add_config_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 138
      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:138,10'
          Dst:             pr_config_add_set
    - functionName:    modules_init
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 490
      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:483,9'
          Dst:             pr_module_load
        - Src:             'modules.c:485,27'
          Dst:             __errno_location
        - Src:             'modules.c:485,18'
          Dst:             strerror
        - Src:             'modules.c:484,7'
          Dst:             pr_log_pri
        - Src:             'modules.c:486,7'
          Dst:             exit
    - functionName:    pr_module_load
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 381
      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:326,5'
          Dst:             __errno_location
        - Src:             'modules.c:332,5'
          Dst:             __errno_location
        - Src:             'modules.c:338,3'
          Dst:             pr_snprintf
        - Src:             'modules.c:341,7'
          Dst:             pr_module_get
        - Src:             'modules.c:342,5'
          Dst:             __errno_location
        - Src:             'modules.c:354,9'
          Dst:             pr_module_load_conftab
        - Src:             'modules.c:358,9'
          Dst:             pr_module_load_cmdtab
        - Src:             'modules.c:362,9'
          Dst:             pr_module_load_authtab
        - Src:             'modules.c:375,5'
          Dst:             pr_event_generate
        - Src:             'modules.c:379,3'
          Dst:             __errno_location
    - functionName:    pr_module_get
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 189
      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:172,5'
          Dst:             __errno_location
        - Src:             'modules.c:179,5'
          Dst:             pr_snprintf
        - Src:             'modules.c:182,9'
          Dst:             strcmp
        - Src:             'modules.c:187,3'
          Dst:             __errno_location
    - functionName:    pr_module_load_conftab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 319
      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:302,5'
          Dst:             __errno_location
        - Src:             'modules.c:312,11'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_load_cmdtab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 297
      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:272,5'
          Dst:             __errno_location
        - Src:             'modules.c:283,13'
          Dst:             pr_stash_add_symbol
        - Src:             'modules.c:289,13'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_load_authtab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 267
      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:250,5'
          Dst:             __errno_location
        - Src:             'modules.c:260,11'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_unload
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 475
      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:388,5'
          Dst:             __errno_location
        - Src:             'modules.c:397,3'
          Dst:             pr_snprintf
        - Src:             'modules.c:400,7'
          Dst:             pr_module_get
        - Src:             'modules.c:401,5'
          Dst:             __errno_location
        - Src:             'modules.c:406,3'
          Dst:             pr_event_generate
        - Src:             'modules.c:430,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:439,9'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:443,9'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:452,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:469,3'
          Dst:             pr_ctrls_unregister
        - Src:             'modules.c:471,3'
          Dst:             pr_event_unregister
        - Src:             'modules.c:472,3'
          Dst:             pr_timer_remove
    - functionName:    modules_list
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 245
      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:244,3'
          Dst:             modules_list2
    - functionName:    modules_list2
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 241
      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: 163
      functionLinenumberEnd: 164
      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:164,10'
          Dst:             pr_module_get
    - functionName:    command_exists
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 160
      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:154,12'
          Dst:             pr_stash_get_symbol2
        - Src:             'modules.c:156,5'
          Dst:             pr_signals_handle
        - Src:             'modules.c:157,14'
          Dst:             pr_stash_get_symbol2
    - functionName:    modules_session_init
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 147
      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:130,7'
          Dst:             pr_trace_msg
        - Src:             'modules.c:133,22'
          Dst:             __errno_location
        - Src:             'modules.c:137,35'
          Dst:             strerror
        - Src:             'modules.c:135,9'
          Dst:             pr_log_pri
        - Src:             'modules.c:139,9'
          Dst:             __errno_location
    - functionName:    mod_create_error
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      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:109,5'
          Dst:             __errno_location
        - Src:             'modules.c:113,9'
          Dst:             pcalloc
    - functionName:    mod_create_ret
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 103
      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:    1154
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:86,5'
          Dst:             __errno_location
        - Src:             'modules.c:90,9'
          Dst:             pcalloc
        - Src:             'modules.c:95,23'
          Dst:             pstrdup
        - Src:             'modules.c:99,23'
          Dst:             pstrdup
    - functionName:    mod_create_data
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 79
      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:71,5'
          Dst:             __errno_location
        - Src:             'modules.c:75,9'
          Dst:             pcalloc
    - functionName:    pr_module_call
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 65
      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:48,5'
          Dst:             __errno_location
        - Src:             'modules.c:53,21'
          Dst:             make_sub_pool
        - Src:             'modules.c:54,5'
          Dst:             pr_pool_tag
    - functionName:    netaddr_dnscache_set
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 148
      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:102,11'
          Dst:             netaddr_dnscache_get
        - Src:             'netaddr.c:105,13'
          Dst:             make_array
        - Src:             'netaddr.c:116,15'
          Dst:             strcmp
        - Src:             'netaddr.c:117,13'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:126,36'
          Dst:             pstrdup
        - Src:             'netaddr.c:126,17'
          Dst:             push_array
        - Src:             'netaddr.c:130,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:130,11'
          Dst:             pr_table_add
        - Src:             'netaddr.c:134,55'
          Dst:             __errno_location
        - Src:             'netaddr.c:134,46'
          Dst:             strerror
        - Src:             'netaddr.c:132,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:137,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:143,7'
          Dst:             pr_trace_msg
    - functionName:    netaddr_dnscache_get
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 94
      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:73,9'
          Dst:             pr_table_get
        - Src:             'netaddr.c:77,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:83,16'
          Dst:             copy_array_str
        - Src:             'netaddr.c:90,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:92,3'
          Dst:             __errno_location
    - functionName:    init_netaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2518
      functionLinenumberEnd: 2530
      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:2520,5'
          Dst:             pr_netaddr_clear_cache
        - Src:             'netaddr.c:2521,5'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2525,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2526,3'
          Dst:             pr_pool_tag
        - Src:             'netaddr.c:2528,19'
          Dst:             pr_table_alloc
        - Src:             'netaddr.c:2529,20'
          Dst:             pr_table_alloc
    - functionName:    pr_netaddr_clear_cache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2486
      functionLinenumberEnd: 2504
      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:2488,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2489,12'
          Dst:             pr_table_empty
        - Src:             'netaddr.c:2490,12'
          Dst:             pr_table_free
        - Src:             'netaddr.c:2493,21'
          Dst:             pr_table_alloc
        - Src:             'netaddr.c:2497,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2498,12'
          Dst:             pr_table_empty
        - Src:             'netaddr.c:2499,12'
          Dst:             pr_table_free
        - Src:             'netaddr.c:2502,22'
          Dst:             pr_table_alloc
    - functionName:    pr_netaddr_clear_ipcache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2512
      functionLinenumberEnd: 2516
      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:2514,12'
          Dst:             pr_table_remove
    - functionName:    pr_netaddr_clear_dnscache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2506
      functionLinenumberEnd: 2510
      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:2508,12'
          Dst:             pr_table_remove
    - functionName:    pr_netaddr_enable_ipv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2480
      functionLinenumberEnd: 2484
      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: 2474
      functionLinenumberEnd: 2478
      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: 2466
      functionLinenumberEnd: 2472
      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: 2447
      functionLinenumberEnd: 2464
      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:2450,5'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2449,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2452,5'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:2451,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:2457,5'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2456,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2459,5'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:2458,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:2462,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_family
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1031
      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:1026,5'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_family
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1064
      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:1040,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1035,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1055,7'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sockaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1128
      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:1114,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1110,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1114,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1126,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_sockaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1130
      functionLinenumberEnd: 1154
      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:1138,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1133,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1152,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_remote_name
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2438
      functionLinenumberEnd: 2445
      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:2443,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_remote_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2429
      functionLinenumberEnd: 2436
      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:2434,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_local_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2420
      functionLinenumberEnd: 2427
      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:2425,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_v4tov6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2391
      functionLinenumberEnd: 2418
      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:2396,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2400,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2401,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2407,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2407,5'
          Dst:             pstrcat
        - Src:             'netaddr.c:2406,26'
          Dst:             pr_netaddr_get_addr
        - Src:             'netaddr.c:2409,30'
          Dst:             pr_netaddr_get_port
        - Src:             'netaddr.c:2409,5'
          Dst:             pr_netaddr_set_port
    - functionName:    pr_netaddr_get_ipstr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1696
      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:    174
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1640,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1652,24'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:1653,5'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'netaddr.c:1652,9'
          Dst:             getnameinfo
        - Src:             'netaddr.c:1654,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:1658,59'
          Dst:             gai_strerror
        - Src:             'netaddr.c:1658,7'
          Dst:             pr_log_pri
        - Src:             'netaddr.c:1659,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1663,17'
          Dst:             strerror
        - Src:             'netaddr.c:1662,7'
          Dst:             pr_log_pri
        - Src:             'netaddr.c:1664,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1672,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1678,11'
          Dst:             strrchr
        - Src:             'netaddr.c:1692,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1021
      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:1021,10'
          Dst:             pr_netaddr_get_addr2
    - functionName:    pr_netaddr_get_port
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1241
      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:1227,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1223,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1227,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1239,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_port
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1265
      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:1249,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1245,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1249,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1263,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_addr2
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 1017
      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:948,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:952,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:963,10'
          Dst:             netaddr_ipcache_get
        - Src:             'netaddr.c:979,8'
          Dst:             get_addr_by_ip
        - Src:             'netaddr.c:980,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:996,10'
          Dst:             get_addr_by_name
        - Src:             'netaddr.c:997,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:1005,10'
          Dst:             get_addr_by_device
        - Src:             'netaddr.c:1006,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:1013,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1015,3'
          Dst:             __errno_location
    - functionName:    netaddr_ipcache_get
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 186
      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:156,9'
          Dst:             pr_table_get
        - Src:             'netaddr.c:161,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:159,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:169,19'
          Dst:             pr_netaddr_dup
        - Src:             'netaddr.c:172,46'
          Dst:             __errno_location
        - Src:             'netaddr.c:172,37'
          Dst:             strerror
        - Src:             'netaddr.c:171,11'
          Dst:             pr_log_debug
        - Src:             'netaddr.c:182,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:184,3'
          Dst:             __errno_location
    - functionName:    get_addr_by_ip
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 593
      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:526,11'
          Dst:             inet_pton
        - Src:             'netaddr.c:528,29'
          Dst:             pcalloc
        - Src:             'netaddr.c:529,7'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:530,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:536,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:535,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:539,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:541,28'
          Dst:             __errno_location
        - Src:             'netaddr.c:541,19'
          Dst:             strerror
        - Src:             'netaddr.c:540,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:544,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:544,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:546,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:546,48'
          Dst:             __errno_location
        - Src:             'netaddr.c:546,39'
          Dst:             strerror
        - Src:             'netaddr.c:545,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:562,9'
          Dst:             inet_pton
        - Src:             'netaddr.c:564,27'
          Dst:             pcalloc
        - Src:             'netaddr.c:565,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:566,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:572,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:571,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:575,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:577,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:577,11'
          Dst:             strerror
        - Src:             'netaddr.c:576,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:581,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:581,11'
          Dst:             strcmp
        - Src:             'netaddr.c:582,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:582,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:584,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:584,48'
          Dst:             __errno_location
        - Src:             'netaddr.c:584,39'
          Dst:             strerror
        - Src:             'netaddr.c:583,11'
          Dst:             pr_trace_msg
    - functionName:    get_addr_by_name
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          545
      EdgeCount:       110
      CyclomaticComplexity: 29
      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:607,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:608,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:610,3'
          Dst:             __errno_location
        - Src:             'netaddr.c:611,9'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:613,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:620,11'
          Dst:             gai_strerror
        - Src:             'netaddr.c:618,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:628,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:630,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:631,15'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:632,18'
          Dst:             __errno_location
        - Src:             'netaddr.c:638,15'
          Dst:             gai_strerror
        - Src:             'netaddr.c:636,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:675,15'
          Dst:             strcmp
        - Src:             'netaddr.c:696,17'
          Dst:             strerror
        - Src:             'netaddr.c:694,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:700,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:706,27'
          Dst:             pcalloc
        - Src:             'netaddr.c:709,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:710,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:714,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:712,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:717,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:719,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:719,11'
          Dst:             strerror
        - Src:             'netaddr.c:718,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:722,31'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:722,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:724,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:724,46'
          Dst:             __errno_location
        - Src:             'netaddr.c:724,37'
          Dst:             strerror
        - Src:             'netaddr.c:723,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:733,18'
          Dst:             make_array
        - Src:             'netaddr.c:740,9'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:741,15'
          Dst:             push_array
        - Src:             'netaddr.c:743,16'
          Dst:             pcalloc
        - Src:             'netaddr.c:744,9'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:745,9'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:749,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:747,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:755,5'
          Dst:             freeaddrinfo
        - Src:             'netaddr.c:778,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:780,11'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:781,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:786,17'
          Dst:             gai_strerror
        - Src:             'netaddr.c:785,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:791,19'
          Dst:             strerror
        - Src:             'netaddr.c:789,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:804,20'
          Dst:             make_array
        - Src:             'netaddr.c:816,11'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:817,17'
          Dst:             push_array
        - Src:             'netaddr.c:819,18'
          Dst:             pcalloc
        - Src:             'netaddr.c:820,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:821,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:825,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:823,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:830,9'
          Dst:             freeaddrinfo
    - functionName:    get_addr_by_device
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 939
      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:850,9'
          Dst:             getifaddrs
        - Src:             'netaddr.c:852,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:855,60'
          Dst:             strerror
        - Src:             'netaddr.c:854,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:862,7'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:880,11'
          Dst:             strcmp
        - Src:             'netaddr.c:882,33'
          Dst:             pcalloc
        - Src:             'netaddr.c:884,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:885,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:890,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:887,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:909,20'
          Dst:             make_array
        - Src:             'netaddr.c:910,17'
          Dst:             push_array
        - Src:             'netaddr.c:912,18'
          Dst:             pcalloc
        - Src:             'netaddr.c:913,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:914,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:919,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:916,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:925,7'
          Dst:             freeifaddrs
        - Src:             'netaddr.c:933,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: 188
      functionLinenumberEnd: 225
      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:194,9'
          Dst:             pr_netaddr_dup
        - Src:             'netaddr.c:199,13'
          Dst:             pr_table_exists
        - Src:             'netaddr.c:201,39'
          Dst:             pstrdup
        - Src:             'netaddr.c:201,11'
          Dst:             pr_table_add
        - Src:             'netaddr.c:205,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:206,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:206,11'
          Dst:             strerror
        - Src:             'netaddr.c:203,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:211,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:209,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:215,39'
          Dst:             pstrdup
        - Src:             'netaddr.c:215,11'
          Dst:             pr_table_set
        - Src:             'netaddr.c:219,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:219,68'
          Dst:             __errno_location
        - Src:             'netaddr.c:219,59'
          Dst:             strerror
        - Src:             'netaddr.c:217,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: 480
      functionLinenumberEnd: 508
      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:485,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:489,12'
          Dst:             pr_netaddr_alloc
        - Src:             'netaddr.c:491,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:491,7'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:495,35'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:495,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:498,5'
          Dst:             sstrncpy
        - Src:             'netaddr.c:503,5'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_alloc
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 470
      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:465,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:469,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: 1066
      functionLinenumberEnd: 1086
      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:1072,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1068,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1072,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1084,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: 409
      functionLinenumberEnd: 421
      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:421,21'
          Dst:             pr_netaddr_get_inaddr
    - functionName:    pr_netaddr_get_inaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1219
      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:1205,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1201,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1205,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1217,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_v6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2296
      functionLinenumberEnd: 2324
      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:2298,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2314,11'
          Dst:             inet_pton
    - functionName:    pr_netaddr_is_v4
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2272
      functionLinenumberEnd: 2294
      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:2277,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2288,9'
          Dst:             inet_pton
    - functionName:    is_10_xxx_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2168
      functionLinenumberEnd: 2172
      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:2171,20'
          Dst:             htonl
        - Src:             'netaddr.c:2172,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: 1393
      functionLinenumberEnd: 1440
      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:1417,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: 2176
      functionLinenumberEnd: 2180
      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:2179,20'
          Dst:             htonl
        - Src:             'netaddr.c:2180,10'
          Dst:             addr_ncmp
    - functionName:    is_192_168_xx_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2184
      functionLinenumberEnd: 2188
      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:2187,20'
          Dst:             htonl
        - Src:             'netaddr.c:2188,10'
          Dst:             addr_ncmp
    - functionName:    pr_netaddr_get_addrno
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2239
      functionLinenumberEnd: 2270
      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:2245,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2241,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2245,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2261,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:2268,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_rfc1918
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2192
      functionLinenumberEnd: 2234
      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:2198,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2194,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2198,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2202,16'
          Dst:             pr_netaddr_get_addrno
        - Src:             'netaddr.c:2203,11'
          Dst:             is_192_168_xx_addr
        - Src:             'netaddr.c:2204,11'
          Dst:             is_172_16_xx_addr
        - Src:             'netaddr.c:2205,11'
          Dst:             is_10_xxx_addr
        - Src:             'netaddr.c:2213,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2218,20'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2219,16'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:2221,15'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'netaddr.c:2222,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2232,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_v4mappedv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2326
      functionLinenumberEnd: 2367
      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:2332,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2328,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2332,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2336,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:2344,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:2352,13'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2352,13'
          Dst:             htonl
        - Src:             'netaddr.c:2357,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:2365,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_v6tov4
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2369
      functionLinenumberEnd: 2389
      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:2374,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2378,7'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2379,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2383,9'
          Dst:             pr_netaddr_alloc
        - Src:             'netaddr.c:2384,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2385,28'
          Dst:             pr_netaddr_get_port
        - Src:             'netaddr.c:2385,3'
          Dst:             pr_netaddr_set_port
        - Src:             'netaddr.c:2386,37'
          Dst:             get_v4inaddr
    - functionName:    pr_netaddr_is_loopback
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2111
      functionLinenumberEnd: 2158
      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:2117,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2113,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2117,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2119,14'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2119,14'
          Dst:             ntohl
        - Src:             'netaddr.c:2124,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2129,20'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2130,16'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:2132,15'
          Dst:             pr_netaddr_is_loopback
        - Src:             'netaddr.c:2133,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2151,14'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2151,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: 2099
      functionLinenumberEnd: 2109
      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:2101,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2106,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_localaddr_str
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2048
      functionLinenumberEnd: 2097
      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:2053,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2058,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:2058,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2062,9'
          Dst:             gethostname
        - Src:             'netaddr.c:2063,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:2075,12'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:2077,9'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:2079,14'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:2086,42'
          Dst:             pstrdup
        - Src:             'netaddr.c:2086,14'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2090,61'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:2090,51'
          Dst:             hstrerror
        - Src:             'netaddr.c:2089,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2091,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:2091,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2094,62'
          Dst:             strerror
        - Src:             'netaddr.c:2094,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2095,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_validate_dns_str
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 455
      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:431,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:439,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: 2023
      functionLinenumberEnd: 2045
      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:2028,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2036,12'
          Dst:             make_array
        - Src:             'netaddr.c:2039,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2039,9'
          Dst:             netaddr_dnscache_get
        - Src:             'netaddr.c:2041,11'
          Dst:             make_array
    - functionName:    netaddr_get_dnsstr_gethostbyname
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1923
      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:1869,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1844,12'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1849,12'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1851,7'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1853,14'
          Dst:             get_v4inaddr
        - Src:             'netaddr.c:1856,10'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:1862,28'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1862,7'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1865,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1873,17'
          Dst:             memcmp
        - Src:             'netaddr.c:1878,19'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1880,19'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:1881,40'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1881,19'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1896,17'
          Dst:             memcmp
        - Src:             'netaddr.c:1901,19'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1903,19'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:1904,40'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1904,19'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1919,60'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:1919,50'
          Dst:             hstrerror
        - Src:             'netaddr.c:1918,5'
          Dst:             pr_log_debug
    - functionName:    pr_netaddr_get_dnsstr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1930
      functionLinenumberEnd: 2021
      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:1935,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1939,37'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1939,11'
          Dst:             netaddr_ipcache_get
        - Src:             'netaddr.c:1944,5'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1962,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1960,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1965,26'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:1966,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'netaddr.c:1965,11'
          Dst:             getnameinfo
        - Src:             'netaddr.c:1976,13'
          Dst:             netaddr_get_dnsstr_gethostbyname
        - Src:             'netaddr.c:1984,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1982,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1990,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1988,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1995,5'
          Dst:             pr_log_debug
        - Src:             'netaddr.c:2000,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2003,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2013,3'
          Dst:             sstrncpy
        - Src:             'netaddr.c:2017,3'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:2018,23'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2018,3'
          Dst:             netaddr_ipcache_set
    - functionName:    pr_netaddr_fnmatch
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1628
      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:1573,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1580,14'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netaddr.c:1581,9'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1582,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1591,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1592,9'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1593,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1601,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1605,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1608,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1609,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1611,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1613,11'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1614,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1617,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1621,7'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1626,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1625,3'
          Dst:             pr_trace_msg
    - functionName:    pr_netaddr_ncmp
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1443
      functionLinenumberEnd: 1558
      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:1513,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1464,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1464,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1471,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1472,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1473,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1477,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1478,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1483,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1487,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1488,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1486,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1490,16'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1491,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1497,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1500,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1501,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1499,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1513,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1519,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:1533,11'
          Dst:             __errno_location
        - Src:             'netaddr.c:1543,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1548,33'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1549,33'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1551,9'
          Dst:             addr_ncmp
        - Src:             'netaddr.c:1554,5'
          Dst:             destroy_pool
    - functionName:    pr_netaddr_cmp
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1390
      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:    6
      BranchProfiles:
        - Branch String:   'netaddr.c:1346,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1291,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1291,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1298,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1299,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1300,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1304,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1305,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1308,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1307,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1313,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1317,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1318,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1316,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1320,16'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1321,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1324,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1323,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1330,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1333,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1334,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1332,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1346,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1348,13'
          Dst:             memcmp
        - Src:             'netaddr.c:1353,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1353,36'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1352,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1357,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1366,15'
          Dst:             memcmp
        - Src:             'netaddr.c:1371,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1371,38'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1370,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1375,11'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1385,5'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1388,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_port2
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1267
      functionLinenumberEnd: 1268
      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:1268,34'
          Dst:             htons
        - Src:             'netaddr.c:1268,10'
          Dst:             pr_netaddr_set_port
    - functionName:    pr_netaddr_set_sockaddr_any
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1197
      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:1162,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1158,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1162,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1165,28'
          Dst:             htonl
        - Src:             'netaddr.c:1173,9'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1188,11'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1195,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_inaddr_len
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1106
      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:1094,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1090,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1094,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1104,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_clear
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 478
      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: 457
      functionLinenumberEnd: 460
      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: 308
      functionLinenumberEnd: 310
      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: 260
      functionLinenumberEnd: 306
      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:271,5'
          Dst:             destroy_pool
        - Src:             'class.c:277,5'
          Dst:             __errno_location
        - Src:             'class.c:282,3'
          Dst:             push_array
    - functionName:    pr_class_open
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 258
      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:237,5'
          Dst:             __errno_location
        - Src:             'class.c:244,14'
          Dst:             make_sub_pool
        - Src:             'class.c:245,3'
          Dst:             pr_pool_tag
        - Src:             'class.c:247,9'
          Dst:             pcalloc
        - Src:             'class.c:249,19'
          Dst:             pstrdup
        - Src:             'class.c:251,20'
          Dst:             pr_table_nalloc
    - functionName:    pr_class_add_note
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 229
      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:218,5'
          Dst:             __errno_location
        - Src:             'class.c:223,5'
          Dst:             __errno_location
        - Src:             'class.c:227,9'
          Dst:             pr_table_add
    - functionName:    pr_class_set_satisfy
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 212
      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:198,5'
          Dst:             __errno_location
        - Src:             'class.c:204,5'
          Dst:             __errno_location
    - functionName:    pr_class_add_acl
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 194
      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:175,5'
          Dst:             __errno_location
        - Src:             'class.c:180,5'
          Dst:             __errno_location
        - Src:             'class.c:186,26'
          Dst:             make_array
        - Src:             'class.c:191,5'
          Dst:             pr_netacl_dup
        - Src:             'class.c:190,22'
          Dst:             push_array
    - functionName:    pr_class_find
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 170
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:157,5'
          Dst:             __errno_location
        - Src:             'class.c:162,5'
          Dst:             pr_signals_handle
        - Src:             'class.c:163,9'
          Dst:             strcmp
        - Src:             'class.c:168,3'
          Dst:             __errno_location
    - functionName:    pr_class_match_addr
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 151
      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:128,5'
          Dst:             __errno_location
        - Src:             'class.c:132,14'
          Dst:             make_sub_pool
        - Src:             'class.c:137,11'
          Dst:             pr_class_satisfied
        - Src:             'class.c:144,3'
          Dst:             destroy_pool
        - Src:             'class.c:147,5'
          Dst:             __errno_location
    - functionName:    pr_class_satisfied
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 121
      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:    2
      BranchProfiles:
        - Branch String:   'class.c:82,5'
          Branch Sides:    []
      Callsites:
        - Src:             'class.c:57,5'
          Dst:             __errno_location
        - Src:             'class.c:72,5'
          Dst:             pr_signals_handle
        - Src:             'class.c:86,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'class.c:87,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'class.c:88,11'
          Dst:             pr_netacl_get_str
        - Src:             'class.c:84,9'
          Dst:             pr_trace_msg
        - Src:             'class.c:90,15'
          Dst:             pr_netacl_match
        - Src:             'class.c:99,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'class.c:100,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'class.c:101,11'
          Dst:             pr_netacl_get_str
        - Src:             'class.c:97,9'
          Dst:             pr_trace_msg
        - Src:             'class.c:103,15'
          Dst:             pr_netacl_match
    - functionName:    pr_class_get
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 46
      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:42,5'
          Dst:             __errno_location
    - functionName:    init_privs
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 437
      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:433,7'
          Dst:             getuid
        - Src:             'privs.c:434,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: 416
      functionLinenumberEnd: 429
      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:421,5'
          Dst:             __errno_location
    - functionName:    pr_privs_revoke
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 413
      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:370,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:376,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:379,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:382,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:385,7'
          Dst:             seteuid
        - Src:             'privs.c:386,58'
          Dst:             __errno_location
        - Src:             'privs.c:386,5'
          Dst:             privs_log_error
        - Src:             'privs.c:389,7'
          Dst:             setgid
        - Src:             'privs.c:390,57'
          Dst:             __errno_location
        - Src:             'privs.c:390,5'
          Dst:             privs_log_error
        - Src:             'privs.c:393,7'
          Dst:             setuid
        - Src:             'privs.c:394,57'
          Dst:             __errno_location
        - Src:             'privs.c:394,5'
          Dst:             privs_log_error
        - Src:             'privs.c:411,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: 66
      functionLinenumberEnd: 73
      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:68,41'
          Dst:             strerror
        - Src:             'privs.c:68,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:71,43'
          Dst:             strerror
        - Src:             'privs.c:71,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: 261
      functionLinenumberEnd: 366
      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:    70
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:263,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:269,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:274,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:283,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:289,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:292,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:296,9'
          Dst:             geteuid
        - Src:             'privs.c:297,11'
          Dst:             seteuid
        - Src:             'privs.c:299,63'
          Dst:             __errno_location
        - Src:             'privs.c:298,9'
          Dst:             privs_log_error
        - Src:             'privs.c:312,9'
          Dst:             setegid
        - Src:             'privs.c:314,61'
          Dst:             __errno_location
        - Src:             'privs.c:313,7'
          Dst:             privs_log_error
        - Src:             'privs.c:317,9'
          Dst:             seteuid
        - Src:             'privs.c:319,61'
          Dst:             __errno_location
        - Src:             'privs.c:318,7'
          Dst:             privs_log_error
        - Src:             'privs.c:361,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:364,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: 197
      functionLinenumberEnd: 259
      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:199,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:205,5'
          Dst:             pr_uid2str
        - Src:             'privs.c:204,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:208,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:213,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:217,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:221,9'
          Dst:             seteuid
        - Src:             'privs.c:222,69'
          Dst:             __errno_location
        - Src:             'privs.c:222,7'
          Dst:             privs_log_error
        - Src:             'privs.c:225,9'
          Dst:             setegid
        - Src:             'privs.c:227,9'
          Dst:             __errno_location
        - Src:             'privs.c:226,7'
          Dst:             privs_log_error
        - Src:             'privs.c:230,9'
          Dst:             seteuid
        - Src:             'privs.c:232,9'
          Dst:             __errno_location
        - Src:             'privs.c:231,7'
          Dst:             privs_log_error
        - Src:             'privs.c:254,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:257,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_privs_root
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 195
      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:    66
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:150,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:155,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:158,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:163,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:167,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:172,9'
          Dst:             seteuid
        - Src:             'privs.c:173,58'
          Dst:             __errno_location
        - Src:             'privs.c:173,7'
          Dst:             privs_log_error
        - Src:             'privs.c:176,9'
          Dst:             setegid
        - Src:             'privs.c:177,58'
          Dst:             __errno_location
        - Src:             'privs.c:177,7'
          Dst:             privs_log_error
        - Src:             'privs.c:190,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:193,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_privs_setup
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 146
      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:77,34'
          Dst:             getuid
        - Src:             'privs.c:78,19'
          Dst:             getgid
        - Src:             'privs.c:80,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:85,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:89,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:92,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:94,7'
          Dst:             getuid
        - Src:             'privs.c:95,34'
          Dst:             getuid
        - Src:             'privs.c:96,19'
          Dst:             getgid
        - Src:             'privs.c:98,9'
          Dst:             setgid
        - Src:             'privs.c:99,58'
          Dst:             __errno_location
        - Src:             'privs.c:99,7'
          Dst:             privs_log_error
        - Src:             'privs.c:103,9'
          Dst:             setuid
        - Src:             'privs.c:104,58'
          Dst:             __errno_location
        - Src:             'privs.c:104,7'
          Dst:             privs_log_error
        - Src:             'privs.c:107,9'
          Dst:             seteuid
        - Src:             'privs.c:108,59'
          Dst:             __errno_location
        - Src:             'privs.c:108,7'
          Dst:             privs_log_error
        - Src:             'privs.c:117,20'
          Dst:             getuid
        - Src:             'privs.c:122,9'
          Dst:             setuid
        - Src:             'privs.c:123,58'
          Dst:             __errno_location
        - Src:             'privs.c:123,7'
          Dst:             privs_log_error
        - Src:             'privs.c:126,9'
          Dst:             setgid
        - Src:             'privs.c:127,58'
          Dst:             __errno_location
        - Src:             'privs.c:127,7'
          Dst:             privs_log_error
        - Src:             'privs.c:130,9'
          Dst:             seteuid
        - Src:             'privs.c:131,59'
          Dst:             __errno_location
        - Src:             'privs.c:131,7'
          Dst:             privs_log_error
        - Src:             'privs.c:144,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: 303
      functionLinenumberEnd: 316
      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:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:311,12'
          Dst:             strlen
        - Src:             'proctitle.c:314,3'
          Dst:             sstrncpy
        - Src:             'proctitle.c:315,10'
          Dst:             strlen
    - functionName:    pr_proctitle_set_static_str
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 301
      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:294,5'
          Dst:             pr_proctitle_set_str
    - functionName:    pr_proctitle_set_str
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
        - sstrncpy
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:160,3'
          Dst:             sstrncpy
        - Src:             'proctitle.c:161,16'
          Dst:             strlen
        - Src:             'proctitle.c:173,3'
          Dst:             snprintf
    - functionName:    pr_proctitle_set
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 290
      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:243,3'
          Dst:             snprintf
        - Src:             'proctitle.c:244,30'
          Dst:             strlen
        - Src:             'proctitle.c:245,32'
          Dst:             strlen
        - Src:             'proctitle.c:244,3'
          Dst:             vsnprintf
        - Src:             'proctitle.c:254,16'
          Dst:             strlen
        - Src:             'proctitle.c:266,3'
          Dst:             snprintf
    - functionName:    pr_proctitle_free
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 145
      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: 67
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          254
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - calloc
        - sstrncpy
        - strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:74,17'
          Dst:             strlen
        - Src:             'proctitle.c:77,17'
          Dst:             calloc
        - Src:             'proctitle.c:86,18'
          Dst:             strlen
        - Src:             'proctitle.c:94,9'
          Dst:             sstrncpy
        - Src:             'proctitle.c:105,34'
          Dst:             strlen
        - Src:             'proctitle.c:111,34'
          Dst:             strlen
        - Src:             'proctitle.c:119,16'
          Dst:             strdup
        - Src:             'proctitle.c:120,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: 286
      functionLinenumberEnd: 314
      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:289,5'
          Dst:             __errno_location
        - Src:             'expr.c:304,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_user_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 281
      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:254,5'
          Dst:             __errno_location
        - Src:             'expr.c:271,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_group_or
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 246
      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:207,5'
          Dst:             __errno_location
        - Src:             'expr.c:224,9'
          Dst:             strcmp
        - Src:             'expr.c:233,13'
          Dst:             strcmp
    - functionName:    pr_expr_eval_group_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 199
      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:160,5'
          Dst:             __errno_location
        - Src:             'expr.c:177,9'
          Dst:             strcmp
        - Src:             'expr.c:186,13'
          Dst:             strcmp
    - functionName:    pr_expr_eval_class_or
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 152
      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:122,5'
          Dst:             __errno_location
        - Src:             'expr.c:142,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_class_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 114
      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:82,5'
          Dst:             __errno_location
        - Src:             'expr.c:104,9'
          Dst:             strcmp
    - functionName:    pr_expr_create
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 74
      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:37,5'
          Dst:             __errno_location
        - Src:             'expr.c:44,11'
          Dst:             make_array
        - Src:             'expr.c:50,11'
          Dst:             pstrdup
        - Src:             'expr.c:52,11'
          Dst:             strstr
        - Src:             'expr.c:53,23'
          Dst:             pr_str_get_token
        - Src:             'expr.c:54,11'
          Dst:             pr_signals_handle
        - Src:             'expr.c:57,25'
          Dst:             push_array
        - Src:             'expr.c:62,21'
          Dst:             push_array
        - Src:             'expr.c:69,11'
          Dst:             make_array
    - functionName:    handle_stacktrace_signal
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 221
      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:181,3'
          Dst:             table_handling_signal
        - Src:             'signals.c:183,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:186,13'
          Dst:             backtrace
        - Src:             'signals.c:188,63'
          Dst:             __errno_location
        - Src:             'signals.c:188,54'
          Dst:             strerror
        - Src:             'signals.c:188,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:202,13'
          Dst:             backtrace_symbols
        - Src:             'signals.c:204,71'
          Dst:             __errno_location
        - Src:             'signals.c:204,62'
          Dst:             strerror
        - Src:             'signals.c:204,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:211,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:217,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:219,3'
          Dst:             sig_terminate
        - Src:             'signals.c:220,3'
          Dst:             finish_terminate
    - functionName:    sig_terminate
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 395
      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:320,3'
          Branch Sides:    []
      Callsites:
        - Src:             'signals.c:377,5'
          Dst:             pr_trace_msg
        - Src:             'signals.c:378,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:382,9'
          Dst:             pr_session_get_protocol
        - Src:             'signals.c:381,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:387,5'
          Dst:             install_stacktrace_handler
        - Src:             'signals.c:391,7'
          Dst:             signal
        - Src:             'signals.c:393,70'
          Dst:             __errno_location
        - Src:             'signals.c:393,61'
          Dst:             strerror
        - Src:             'signals.c:392,5'
          Dst:             pr_log_pri
    - functionName:    finish_terminate
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 102
      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:57,15'
          Dst:             getpid
        - Src:             'signals.c:58,5'
          Dst:             pr_privs_root
        - Src:             'signals.c:63,7'
          Dst:             pr_pidfile_remove
        - Src:             'signals.c:74,5'
          Dst:             pr_event_generate
        - Src:             'signals.c:75,5'
          Dst:             pr_event_generate
        - Src:             'signals.c:81,5'
          Dst:             pr_event_unregister
        - Src:             'signals.c:82,5'
          Dst:             pr_event_unregister
        - Src:             'signals.c:84,5'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:87,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:91,7'
          Dst:             pr_privs_root
        - Src:             'signals.c:92,7'
          Dst:             pr_delete_scoreboard
        - Src:             'signals.c:93,7'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:101,3'
          Dst:             pr_session_disconnect
    - functionName:    install_stacktrace_handler
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 421
      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:404,7'
          Dst:             sigaction
        - Src:             'signals.c:407,16'
          Dst:             __errno_location
        - Src:             'signals.c:407,7'
          Dst:             strerror
        - Src:             'signals.c:405,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:410,7'
          Dst:             sigaction
        - Src:             'signals.c:413,16'
          Dst:             __errno_location
        - Src:             'signals.c:413,7'
          Dst:             strerror
        - Src:             'signals.c:411,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:416,7'
          Dst:             sigaction
        - Src:             'signals.c:419,16'
          Dst:             __errno_location
        - Src:             'signals.c:419,7'
          Dst:             strerror
        - Src:             'signals.c:417,5'
          Dst:             pr_log_pri
    - functionName:    handle_abort
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 107
      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:105,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:106,3'
          Dst:             finish_terminate
    - functionName:    handle_xfsz
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 233
      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:230,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:232,3'
          Dst:             finish_terminate
    - functionName:    handle_xcpu
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 226
      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:224,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:225,3'
          Dst:             finish_terminate
    - functionName:    handle_terminate_with_kids
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 160
      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:150,9'
          Dst:             child_count
        - Src:             'signals.c:151,7'
          Dst:             pr_privs_root
        - Src:             'signals.c:152,7'
          Dst:             child_signal
        - Src:             'signals.c:153,7'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:156,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:159,3'
          Dst:             finish_terminate
    - functionName:    handle_terminate_without_kids
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 165
      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:163,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:164,3'
          Dst:             finish_terminate
    - functionName:    handle_evnt
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 143
      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:142,3'
          Dst:             pr_event_generate
    - functionName:    handle_chld
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 139
      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:113,3'
          Dst:             sigemptyset
        - Src:             'signals.c:114,3'
          Dst:             sigaddset
        - Src:             'signals.c:115,3'
          Dst:             sigaddset
        - Src:             'signals.c:117,3'
          Dst:             pr_alarms_block
        - Src:             'signals.c:122,7'
          Dst:             sigprocmask
        - Src:             'signals.c:124,50'
          Dst:             __errno_location
        - Src:             'signals.c:124,41'
          Dst:             strerror
        - Src:             'signals.c:123,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:127,17'
          Dst:             waitpid
        - Src:             'signals.c:128,9'
          Dst:             child_remove
        - Src:             'signals.c:133,7'
          Dst:             sigprocmask
        - Src:             'signals.c:135,52'
          Dst:             __errno_location
        - Src:             'signals.c:135,43'
          Dst:             strerror
        - Src:             'signals.c:134,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:138,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: 294
      functionLinenumberEnd: 309
      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:297,7'
          Dst:             signal
        - Src:             'signals.c:300,16'
          Dst:             __errno_location
        - Src:             'signals.c:300,7'
          Dst:             strerror
        - Src:             'signals.c:298,5'
          Dst:             pr_log_pri
    - functionName:    sig_restart
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 551
      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:546,7'
          Dst:             signal
        - Src:             'signals.c:546,7'
          Dst:             sig_restart
        - Src:             'signals.c:549,16'
          Dst:             __errno_location
        - Src:             'signals.c:549,7'
          Dst:             strerror
        - Src:             'signals.c:547,5'
          Dst:             pr_log_pri
    - functionName:    sig_child
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 272
      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:265,3'
          Dst:             handle_chld
        - Src:             'signals.c:267,7'
          Dst:             signal
        - Src:             'signals.c:267,7'
          Dst:             sig_child
        - Src:             'signals.c:270,16'
          Dst:             __errno_location
        - Src:             'signals.c:270,7'
          Dst:             strerror
        - Src:             'signals.c:268,5'
          Dst:             pr_log_pri
    - functionName:    init_signals
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 733
      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:605,3'
          Dst:             sigemptyset
        - Src:             'signals.c:607,3'
          Dst:             sigaddset
        - 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:619,3'
          Dst:             sigaddset
        - Src:             'signals.c:622,3'
          Dst:             sigaddset
        - Src:             'signals.c:625,3'
          Dst:             sigaddset
        - Src:             'signals.c:628,7'
          Dst:             signal
        - Src:             'signals.c:628,7'
          Dst:             sig_child
        - Src:             'signals.c:631,16'
          Dst:             __errno_location
        - Src:             'signals.c:631,7'
          Dst:             strerror
        - Src:             'signals.c:629,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:634,7'
          Dst:             signal
        - Src:             'signals.c:634,7'
          Dst:             sig_restart
        - Src:             'signals.c:637,16'
          Dst:             __errno_location
        - Src:             'signals.c:637,7'
          Dst:             strerror
        - Src:             'signals.c:635,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:640,7'
          Dst:             signal
        - Src:             'signals.c:640,7'
          Dst:             sig_terminate
        - Src:             'signals.c:643,16'
          Dst:             __errno_location
        - Src:             'signals.c:643,7'
          Dst:             strerror
        - Src:             'signals.c:641,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:646,7'
          Dst:             signal
        - Src:             'signals.c:646,7'
          Dst:             sig_terminate
        - Src:             'signals.c:649,16'
          Dst:             __errno_location
        - Src:             'signals.c:649,7'
          Dst:             strerror
        - Src:             'signals.c:647,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:652,7'
          Dst:             signal
        - Src:             'signals.c:652,7'
          Dst:             sig_terminate
        - Src:             'signals.c:655,16'
          Dst:             __errno_location
        - Src:             'signals.c:655,7'
          Dst:             strerror
        - Src:             'signals.c:653,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:658,7'
          Dst:             signal
        - Src:             'signals.c:658,7'
          Dst:             sig_terminate
        - Src:             'signals.c:661,16'
          Dst:             __errno_location
        - Src:             'signals.c:661,7'
          Dst:             strerror
        - Src:             'signals.c:659,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:665,7'
          Dst:             signal
        - Src:             'signals.c:665,7'
          Dst:             sig_terminate
        - Src:             'signals.c:668,16'
          Dst:             __errno_location
        - Src:             'signals.c:668,7'
          Dst:             strerror
        - Src:             'signals.c:666,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:672,7'
          Dst:             signal
        - Src:             'signals.c:672,7'
          Dst:             sig_abort
        - Src:             'signals.c:675,16'
          Dst:             __errno_location
        - Src:             'signals.c:675,7'
          Dst:             strerror
        - Src:             'signals.c:673,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:679,3'
          Dst:             install_stacktrace_handler
        - Src:             'signals.c:685,7'
          Dst:             signal
        - Src:             'signals.c:688,16'
          Dst:             __errno_location
        - Src:             'signals.c:688,7'
          Dst:             strerror
        - Src:             'signals.c:686,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:691,7'
          Dst:             signal
        - Src:             'signals.c:691,7'
          Dst:             sig_terminate
        - Src:             'signals.c:694,16'
          Dst:             __errno_location
        - Src:             'signals.c:694,7'
          Dst:             strerror
        - Src:             'signals.c:692,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:697,7'
          Dst:             signal
        - Src:             'signals.c:700,16'
          Dst:             __errno_location
        - Src:             'signals.c:700,7'
          Dst:             strerror
        - Src:             'signals.c:698,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:704,7'
          Dst:             signal
        - Src:             'signals.c:704,7'
          Dst:             sig_terminate
        - Src:             'signals.c:707,16'
          Dst:             __errno_location
        - Src:             'signals.c:707,7'
          Dst:             strerror
        - Src:             'signals.c:705,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:712,7'
          Dst:             signal
        - Src:             'signals.c:715,16'
          Dst:             __errno_location
        - Src:             'signals.c:715,7'
          Dst:             strerror
        - Src:             'signals.c:713,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:719,7'
          Dst:             signal
        - Src:             'signals.c:719,7'
          Dst:             pr_signals_handle_event
        - Src:             'signals.c:722,16'
          Dst:             __errno_location
        - Src:             'signals.c:722,7'
          Dst:             strerror
        - Src:             'signals.c:720,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:728,7'
          Dst:             sigprocmask
        - Src:             'signals.c:730,50'
          Dst:             __errno_location
        - Src:             'signals.c:730,41'
          Dst:             strerror
        - Src:             'signals.c:729,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_event
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 587
      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:582,7'
          Dst:             signal
        - Src:             'signals.c:582,7'
          Dst:             pr_signals_handle_event
        - Src:             'signals.c:585,16'
          Dst:             __errno_location
        - Src:             'signals.c:585,7'
          Dst:             strerror
        - Src:             'signals.c:583,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_disconnect
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 576
      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:571,7'
          Dst:             signal
        - Src:             'signals.c:574,16'
          Dst:             __errno_location
        - Src:             'signals.c:574,7'
          Dst:             strerror
        - Src:             'signals.c:572,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_without_delay
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 537
      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:536,3'
          Dst:             handle_signals
    - functionName:    handle_signals
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 529
      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:428,3'
          Dst:             table_handling_signal
        - Src:             'signals.c:430,7'
          Dst:             __errno_location
        - Src:             'signals.c:439,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:444,7'
          Dst:             pr_timer_usleep
        - Src:             'signals.c:448,5'
          Dst:             __errno_location
        - Src:             'signals.c:454,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:455,7'
          Dst:             handle_alarm
        - Src:             'signals.c:460,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:461,7'
          Dst:             handle_chld
        - Src:             'signals.c:468,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:469,7'
          Dst:             handle_evnt
        - Src:             'signals.c:474,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:475,7'
          Dst:             handle_terminate_without_kids
        - Src:             'signals.c:480,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:481,7'
          Dst:             handle_terminate_with_kids
        - Src:             'signals.c:486,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:487,7'
          Dst:             handle_xcpu
        - Src:             'signals.c:493,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:494,7'
          Dst:             handle_xfsz
        - Src:             'signals.c:500,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:501,7'
          Dst:             handle_abort
        - Src:             'signals.c:506,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:509,7'
          Dst:             schedule
        - Src:             'signals.c:509,7'
          Dst:             restart_daemon
        - Src:             'signals.c:514,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:515,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:516,7'
          Dst:             pr_session_disconnect
        - Src:             'signals.c:521,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:524,7'
          Dst:             schedule
        - Src:             'signals.c:524,7'
          Dst:             shutdown_end_session
        - Src:             'signals.c:528,3'
          Dst:             table_handling_signal
    - functionName:    pr_signals_handle
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - handle_signals
      functionUses:    312
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:532,3'
          Dst:             handle_signals
    - functionName:    init_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2076
      functionLinenumberEnd: 2081
      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:2077,3'
          Dst:             signal
        - Src:             'netio.c:2078,3'
          Dst:             signal
        - Src:             'netio.c:2080,3'
          Dst:             pr_register_netio
    - functionName:    pr_register_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1903
      functionLinenumberEnd: 1955
      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:1912,44'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1918,26'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1923,26'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1938,5'
          Dst:             __errno_location
    - functionName:    pr_alloc_netio2
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2011
      functionLinenumberEnd: 2070
      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:2016,5'
          Dst:             __errno_location
        - Src:             'netio.c:2020,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:2030,15'
          Dst:             getpid
        - Src:             'netio.c:2031,5'
          Dst:             pr_pool_tag
        - Src:             'netio.c:2034,5'
          Dst:             pr_pool_tag
        - Src:             'netio.c:2037,11'
          Dst:             pcalloc
        - Src:             'netio.c:2043,27'
          Dst:             pstrdup
        - Src:             'netio.c:2046,27'
          Dst:             pstrdup
    - functionName:    core_netio_abort_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 140
      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: 142
      functionLinenumberEnd: 154
      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:146,11'
          Dst:             close
        - Src:             'netio.c:150,5'
          Dst:             __errno_location
    - functionName:    core_netio_open_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 166
      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: 169
      functionLinenumberEnd: 213
      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:196,9'
          Dst:             select
        - Src:             'netio.c:198,18'
          Dst:             __errno_location
        - Src:             'netio.c:203,9'
          Dst:             __errno_location
        - Src:             'netio.c:204,9'
          Dst:             pr_signals_handle
        - Src:             'netio.c:209,5'
          Dst:             __errno_location
    - functionName:    core_netio_postopen_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 217
      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: 221
      functionLinenumberEnd: 222
      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:222,10'
          Dst:             read
    - functionName:    core_netio_reopen_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 235
      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:229,5'
          Dst:             close
    - functionName:    core_netio_shutdown_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 239
      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:239,10'
          Dst:             shutdown
    - functionName:    core_netio_write_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 244
      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:244,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: 2072
      functionLinenumberEnd: 2073
      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:2073,10'
          Dst:             pr_alloc_netio2
    - functionName:    pr_get_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 2006
      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:1988,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1984,5'
          Dst:             __errno_location
        - Src:             'netio.c:2002,7'
          Dst:             __errno_location
    - functionName:    pr_unregister_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1957
      functionLinenumberEnd: 1978
      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:1959,5'
          Dst:             __errno_location
    - functionName:    pr_netio_telnet_gets
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1892
      functionLinenumberEnd: 1901
      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:1895,9'
          Dst:             pr_netio_telnet_gets2
    - functionName:    pr_netio_telnet_gets2
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1675
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          561
      EdgeCount:       122
      CyclomaticComplexity: 27
      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:1751,9'
          Branch Sides:    []
        - Branch String:   'netio.c:1753,13'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1685,5'
          Dst:             __errno_location
        - Src:             'netio.c:1699,12'
          Dst:             pr_netio_buffer_alloc
        - Src:             'netio.c:1703,5'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1709,16'
          Dst:             pr_netio_read
        - Src:             'netio.c:1728,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1742,7'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1798,13'
          Dst:             pr_netio_printf
        - Src:             'netio.c:1804,13'
          Dst:             pr_netio_printf
        - Src:             'netio.c:1875,5'
          Dst:             __errno_location
        - Src:             'netio.c:1881,5'
          Dst:             pr_log_pri
        - Src:             'netio.c:1882,5'
          Dst:             __errno_location
    - functionName:    pr_netio_buffer_alloc
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 133
      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:112,5'
          Dst:             __errno_location
        - Src:             'netio.c:116,10'
          Dst:             pcalloc
        - Src:             'netio.c:119,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'netio.c:120,15'
          Dst:             pcalloc
    - functionName:    pr_netio_read
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1523
      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:1371,5'
          Branch Sides:    []
        - Branch String:   'netio.c:1384,11'
          Branch Sides:    []
        - Branch String:   'netio.c:1496,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1349,5'
          Dst:             __errno_location
        - Src:             'netio.c:1354,5'
          Dst:             __errno_location
        - Src:             'netio.c:1366,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1371,13'
          Dst:             pr_netio_poll
        - Src:             'netio.c:1380,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1382,11'
          Dst:             run_schedule
        - Src:             'netio.c:1387,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1393,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1406,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1412,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1421,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1427,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1437,15'
          Dst:             __errno_location
        - Src:             'netio.c:1448,13'
          Dst:             __errno_location
        - Src:             'netio.c:1449,13'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1451,13'
          Dst:             __errno_location
        - Src:             'netio.c:1456,33'
          Dst:             __errno_location
        - Src:             'netio.c:1461,27'
          Dst:             __errno_location
        - Src:             'netio.c:1468,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1474,7'
          Dst:             __errno_location
        - Src:             'netio.c:1489,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:1490,12'
          Dst:             pcalloc
        - Src:             'netio.c:1498,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1502,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1506,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1513,5'
          Dst:             destroy_pool
    - functionName:    pr_netio_printf
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1034
      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:1025,5'
          Dst:             __errno_location
        - Src:             'netio.c:1030,9'
          Dst:             pr_netio_vprintf
    - functionName:    pr_netio_vprintf
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1017
      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:1014,3'
          Dst:             pr_vsnprintf
        - Src:             'netio.c:1017,37'
          Dst:             strlen
        - Src:             'netio.c:1017,10'
          Dst:             pr_netio_write
    - functionName:    pr_netio_write
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1195
      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:1092,3'
          Branch Sides:    []
        - Branch String:   'netio.c:1113,5'
          Branch Sides:    []
        - Branch String:   'netio.c:1128,11'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1063,5'
          Dst:             __errno_location
        - Src:             'netio.c:1068,5'
          Dst:             __errno_location
        - Src:             'netio.c:1072,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1085,14'
          Dst:             make_sub_pool
        - Src:             'netio.c:1086,10'
          Dst:             pcalloc
        - Src:             'netio.c:1094,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1098,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1102,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1109,3'
          Dst:             destroy_pool
        - Src:             'netio.c:1113,13'
          Dst:             pr_netio_poll
        - Src:             'netio.c:1116,9'
          Dst:             __errno_location
        - Src:             'netio.c:1125,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1126,11'
          Dst:             run_schedule
        - Src:             'netio.c:1131,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1137,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1150,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1156,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1165,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1171,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1179,36'
          Dst:             __errno_location
        - Src:             'netio.c:1184,27'
          Dst:             __errno_location
    - functionName:    netio_stream_mode
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 263
      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:250,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_netio_poll
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 947
      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:836,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:815,5'
          Dst:             __errno_location
        - Src:             'netio.c:820,5'
          Dst:             __errno_location
        - Src:             'netio.c:830,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:833,5'
          Dst:             run_schedule
        - Src:             'netio.c:834,5'
          Dst:             pr_signals_handle
        - Src:             'netio.c:839,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:845,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:854,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:860,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:869,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:875,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:884,16'
          Dst:             __errno_location
        - Src:             'netio.c:892,11'
          Dst:             __errno_location
        - Src:             'netio.c:899,9'
          Dst:             pr_signals_handle
        - Src:             'netio.c:913,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:919,7'
          Dst:             __errno_location
        - Src:             'netio.c:936,9'
          Dst:             __errno_location
    - functionName:    pr_netio_gets
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1670
      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:1598,5'
          Dst:             __errno_location
        - Src:             'netio.c:1608,12'
          Dst:             pr_netio_buffer_alloc
        - Src:             'netio.c:1617,16'
          Dst:             pr_netio_read
        - Src:             'netio.c:1639,7'
          Dst:             pr_event_generate
    - functionName:    pr_netio_write_async
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1336
      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:1237,3'
          Branch Sides:    []
        - Branch String:   'netio.c:1268,7'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1205,5'
          Dst:             __errno_location
        - Src:             'netio.c:1210,5'
          Dst:             __errno_location
        - Src:             'netio.c:1215,11'
          Dst:             fcntl
        - Src:             'netio.c:1220,7'
          Dst:             fcntl
        - Src:             'netio.c:1224,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1230,14'
          Dst:             make_sub_pool
        - Src:             'netio.c:1231,10'
          Dst:             pcalloc
        - Src:             'netio.c:1239,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1243,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1247,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1254,3'
          Dst:             destroy_pool
        - Src:             'netio.c:1266,7'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1271,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1277,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1286,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1292,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1301,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1307,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1315,32'
          Dst:             __errno_location
        - Src:             'netio.c:1318,27'
          Dst:             __errno_location
        - Src:             'netio.c:1319,14'
          Dst:             fcntl
        - Src:             'netio.c:1334,10'
          Dst:             fcntl
    - functionName:    pr_netio_printf_async
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1051
      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:1041,5'
          Dst:             __errno_location
        - Src:             'netio.c:1046,3'
          Dst:             pr_vsnprintf
        - Src:             'netio.c:1050,43'
          Dst:             strlen
        - Src:             'netio.c:1050,10'
          Dst:             pr_netio_write_async
    - functionName:    pr_netio_postopen
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 1009
      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:960,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:954,5'
          Dst:             __errno_location
        - Src:             'netio.c:958,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:963,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:969,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:978,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:984,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:993,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:999,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1007,3'
          Dst:             __errno_location
    - functionName:    pr_netio_set_poll_interval
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 807
      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: 790
      functionLinenumberEnd: 798
      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:792,5'
          Dst:             __errno_location
    - functionName:    pr_netio_reopen
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 788
      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:743,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:737,5'
          Dst:             __errno_location
        - Src:             'netio.c:741,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:746,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:752,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:761,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:766,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:774,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:779,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:786,3'
          Dst:             __errno_location
    - functionName:    netio_stream_alloc
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 105
      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:83,5'
          Dst:             __errno_location
        - Src:             'netio.c:87,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:88,3'
          Dst:             pr_pool_tag
        - Src:             'netio.c:89,11'
          Dst:             pcalloc
        - Src:             'netio.c:102,18'
          Dst:             pr_table_nalloc
    - functionName:    pr_netio_open
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 730
      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:620,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:612,5'
          Dst:             __errno_location
        - Src:             'netio.c:617,11'
          Dst:             netio_stream_alloc
        - Src:             'netio.c:618,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:626,40'
          Dst:             pstrdup
        - Src:             'netio.c:626,13'
          Dst:             pr_table_add
        - Src:             'netio.c:630,22'
          Dst:             __errno_location
        - Src:             'netio.c:630,13'
          Dst:             strerror
        - Src:             'netio.c:628,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:632,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:640,40'
          Dst:             pstrdup
        - Src:             'netio.c:640,13'
          Dst:             pr_table_add
        - Src:             'netio.c:644,22'
          Dst:             __errno_location
        - Src:             'netio.c:644,13'
          Dst:             strerror
        - Src:             'netio.c:642,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:646,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:660,40'
          Dst:             pstrdup
        - Src:             'netio.c:660,13'
          Dst:             pr_table_add
        - Src:             'netio.c:664,22'
          Dst:             __errno_location
        - Src:             'netio.c:664,13'
          Dst:             strerror
        - Src:             'netio.c:662,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:666,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:674,40'
          Dst:             pstrdup
        - Src:             'netio.c:674,13'
          Dst:             pr_table_add
        - Src:             'netio.c:678,22'
          Dst:             __errno_location
        - Src:             'netio.c:678,13'
          Dst:             strerror
        - Src:             'netio.c:676,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:680,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:694,40'
          Dst:             pstrdup
        - Src:             'netio.c:694,13'
          Dst:             pr_table_add
        - Src:             'netio.c:698,22'
          Dst:             __errno_location
        - Src:             'netio.c:698,13'
          Dst:             strerror
        - Src:             'netio.c:696,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:700,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:708,40'
          Dst:             pstrdup
        - Src:             'netio.c:708,13'
          Dst:             pr_table_add
        - Src:             'netio.c:712,22'
          Dst:             __errno_location
        - Src:             'netio.c:712,13'
          Dst:             strerror
        - Src:             'netio.c:710,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:714,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:724,7'
          Dst:             destroy_pool
        - Src:             'netio.c:725,7'
          Dst:             __errno_location
    - functionName:    pr_netio_lingering_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 603
      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:603,10'
          Dst:             netio_lingering_close
    - functionName:    netio_lingering_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 536
      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:411,3'
          Branch Sides:    []
        - Branch String:   'netio.c:491,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:407,5'
          Dst:             __errno_location
        - Src:             'netio.c:418,7'
          Dst:             __errno_location
        - Src:             'netio.c:427,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:430,5'
          Dst:             pr_netio_shutdown
        - Src:             'netio.c:436,19'
          Dst:             time
        - Src:             'netio.c:446,7'
          Dst:             run_schedule
        - Src:             'netio.c:451,7'
          Dst:             pr_trace_msg
        - Src:             'netio.c:456,13'
          Dst:             select
        - Src:             'netio.c:458,13'
          Dst:             __errno_location
        - Src:             'netio.c:459,24'
          Dst:             time
        - Src:             'netio.c:460,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:473,31'
          Dst:             __errno_location
        - Src:             'netio.c:479,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:488,3'
          Dst:             pr_trace_msg
        - Src:             'netio.c:494,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:500,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:509,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:514,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:523,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:528,9'
          Dst:             pr_trace_msg
    - functionName:    pr_netio_shutdown
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1588
      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:1536,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1530,5'
          Dst:             __errno_location
        - Src:             'netio.c:1534,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1539,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1545,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1554,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1560,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1569,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1575,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1583,7'
          Dst:             __errno_location
    - functionName:    pr_netio_lingering_abort
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 600
      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:546,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:542,5'
          Dst:             __errno_location
        - Src:             'netio.c:553,7'
          Dst:             __errno_location
        - Src:             'netio.c:558,3'
          Dst:             pr_response_send_async
        - Src:             'netio.c:560,3'
          Dst:             pr_netio_shutdown
        - Src:             'netio.c:571,7'
          Dst:             run_schedule
        - Src:             'netio.c:576,13'
          Dst:             select
        - Src:             'netio.c:578,13'
          Dst:             __errno_location
        - Src:             'netio.c:579,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:587,29'
          Dst:             __errno_location
        - Src:             'netio.c:598,10'
          Dst:             netio_lingering_close
    - functionName:    pr_netio_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 399
      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:338,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:332,5'
          Dst:             __errno_location
        - Src:             'netio.c:336,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:341,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:347,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:352,16'
          Dst:             __errno_location
        - Src:             'netio.c:357,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:362,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:366,16'
          Dst:             __errno_location
        - Src:             'netio.c:371,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:376,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:380,16'
          Dst:             __errno_location
        - Src:             'netio.c:384,7'
          Dst:             __errno_location
        - Src:             'netio.c:393,5'
          Dst:             pr_memscrub
        - Src:             'netio.c:396,3'
          Dst:             destroy_pool
        - Src:             'netio.c:397,3'
          Dst:             __errno_location
    - functionName:    pr_netio_abort
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 325
      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:278,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:272,5'
          Dst:             __errno_location
        - Src:             'netio.c:276,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:281,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:287,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:297,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:302,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:310,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:315,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:322,7'
          Dst:             __errno_location
    - functionName:    collated_compare
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1183
      functionLinenumberEnd: 1194
      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:1193,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: 1203
      functionLinenumberEnd: 1259
      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:1205,19'
          Dst:             strlen
        - Src:             'glibc-glob.c:1234,23'
          Dst:             strlen
    - functionName:    glob_in_dir
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1536
      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:1321,10'
          Dst:             __glob_pattern_p
        - Src:             'glibc-glob.c:1331,33'
          Dst:             strchr
        - Src:             'glibc-glob.c:1339,23'
          Dst:             strlen
        - Src:             'glibc-glob.c:1340,23'
          Dst:             strlen
        - Src:             'glibc-glob.c:1354,7'
          Dst:             stat
        - Src:             'glibc-glob.c:1380,19'
          Dst:             opendir
        - Src:             'glibc-glob.c:1383,12'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1384,52'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1426,13'
          Dst:             readdir
        - Src:             'glibc-glob.c:1447,9'
          Dst:             fnmatch
        - Src:             'glibc-glob.c:1451,15'
          Dst:             strlen
        - Src:             'glibc-glob.c:1473,20'
          Dst:             strlen
        - Src:             'glibc-glob.c:1493,14'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1508,10'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1514,2'
          Dst:             closedir
        - Src:             'glibc-glob.c:1516,3'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1522,19'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1526,7'
          Dst:             closedir
        - Src:             'glibc-glob.c:1527,5'
          Dst:             __errno_location
    - functionName:    __glob_pattern_p
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1267
      functionLinenumberEnd: 1294
      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:1272,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: 254
      functionLinenumberEnd: 260
      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:259,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: 390
      functionLinenumberEnd: 424
      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: 1168
      functionLinenumberEnd: 1177
      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: 439
      functionLinenumberEnd: 1153
      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:451,7'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:462,27'
          Dst:             strchr
        - Src:             'glibc-glob.c:474,16'
          Dst:             strlen
        - Src:             'glibc-glob.c:495,11'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:502,15'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:509,15'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:516,12'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:521,15'
          Dst:             strlen
        - Src:             'glibc-glob.c:551,17'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:562,7'
          Dst:             globfree
        - Src:             'glibc-glob.c:571,15'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:572,8'
          Dst:             __assert_fail
        - Src:             'glibc-glob.c:588,14'
          Dst:             strrchr
        - Src:             'glibc-glob.c:604,13'
          Dst:             strlen
        - Src:             'glibc-glob.c:675,14'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:709,27'
          Dst:             getenv
        - Src:             'glibc-glob.c:733,26'
          Dst:             getlogin
        - Src:             'glibc-glob.c:763,9'
          Dst:             getpwnam
        - Src:             'glibc-glob.c:784,26'
          Dst:             strlen
        - Src:             'glibc-glob.c:799,21'
          Dst:             strchr
        - Src:             'glibc-glob.c:846,10'
          Dst:             getpwnam
        - Src:             'glibc-glob.c:857,26'
          Dst:             strlen
        - Src:             'glibc-glob.c:858,49'
          Dst:             strlen
        - Src:             'glibc-glob.c:894,12'
          Dst:             stat
        - Src:             'glibc-glob.c:900,18'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:911,19'
          Dst:             strlen
        - Src:             'glibc-glob.c:933,7'
          Dst:             __glob_pattern_p
        - Src:             'glibc-glob.c:952,16'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:981,13'
          Dst:             glob_in_dir
        - Src:             'glibc-glob.c:990,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:991,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:996,8'
          Dst:             prefix_array
        - Src:             'glibc-glob.c:1000,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1001,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1017,30'
          Dst:             strlen
        - Src:             'glibc-glob.c:1027,15'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1032,5'
          Dst:             globfree
        - Src:             'glibc-glob.c:1041,22'
          Dst:             strlen
        - Src:             'glibc-glob.c:1047,13'
          Dst:             stat
        - Src:             'glibc-glob.c:1056,9'
          Dst:             globfree
        - Src:             'glibc-glob.c:1057,9'
          Dst:             globfree
        - Src:             'glibc-glob.c:1080,30'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1088,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1093,7'
          Dst:             globfree
        - Src:             'glibc-glob.c:1099,16'
          Dst:             glob_in_dir
        - Src:             'glibc-glob.c:1106,8'
          Dst:             prefix_array
        - Src:             'glibc-glob.c:1110,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1129,10'
          Dst:             stat
        - Src:             'glibc-glob.c:1132,20'
          Dst:             strlen
        - Src:             'glibc-glob.c:1133,18'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1136,3'
          Dst:             globfree
        - Src:             'glibc-glob.c:1139,6'
          Dst:             strcpy
        - Src:             'glibc-glob.c:1147,7'
          Dst:             qsort
        - Src:             'glibc-glob.c:1147,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: 1158
      functionLinenumberEnd: 1160
      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:1160,9'
          Dst:             glob_limited
    - functionName:    end_pattern
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1068
      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:1046,22'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:1063,11'
          Dst:             end_pattern
    - functionName:    ext_match
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1075
      functionLinenumberEnd: 1243
      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:1148,3'
          Branch Sides:    []
      Callsites:
        - Src:             './pr_fnmatch_loop.c:1084,24'
          Dst:             strlen
        - Src:             './pr_fnmatch_loop.c:1098,22'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:1151,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1161,10'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1166,7'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1174,7'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1190,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1200,11'
          Dst:             strcat
        - Src:             './pr_fnmatch_loop.c:1200,6'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1217,10'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1224,12'
          Dst:             internal_fnmatch
    - functionName:    internal_fnmatch
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 1029
      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:85,7'
          Branch Sides:    []
      Callsites:
        - Src:             './pr_fnmatch_loop.c:83,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:83,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:92,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:113,12'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:113,12'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:115,27'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:115,27'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:124,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:144,24'
          Dst:             end_pattern
        - Src:             './pr_fnmatch_loop.c:186,13'
          Dst:             memchr
        - Src:             './pr_fnmatch_loop.c:199,15'
          Dst:             memchr
        - Src:             './pr_fnmatch_loop.c:213,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:222,13'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:233,9'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:233,9'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:235,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:235,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:236,8'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:265,26'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:281,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:281,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:290,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:290,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:347,12'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:347,39'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:348,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:348,35'
          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,36'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:651,8'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:651,8'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:995,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:1013,32'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:1013,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: 358
      functionLinenumberEnd: 447
      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:446,54'
          Dst:             strlen
        - Src:             'pr_fnmatch.c:446,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: 2168
      functionLinenumberEnd: 2189
      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:2173,3'
          Dst:             pr_event_unregister
        - Src:             'mod_facts.c:2173,3'
          Dst:             facts_sess_reinit_ev
        - Src:             'mod_facts.c:2179,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2180,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2181,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2182,3'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:2184,9'
          Dst:             facts_sess_init
        - Src:             'mod_facts.c:2186,5'
          Dst:             pr_session_disconnect
    - functionName:    facts_mlst_feat_remove
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 960
      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:945,10'
          Dst:             pr_feat_get
        - Src:             'mod_facts.c:947,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:949,9'
          Dst:             strncmp
        - Src:             'mod_facts.c:954,12'
          Dst:             pr_feat_get_next
        - Src:             'mod_facts.c:958,5'
          Dst:             pr_feat_remove
    - functionName:    facts_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2201
      functionLinenumberEnd: 2260
      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:2205,3'
          Dst:             pr_event_register
        - Src:             'mod_facts.c:2205,3'
          Dst:             facts_sess_reinit_ev
        - Src:             'mod_facts.c:2210,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2219,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2224,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2228,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:2233,9'
          Dst:             find_config_next
        - Src:             'mod_facts.c:2236,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:2242,9'
          Dst:             find_config
        - Src:             'mod_facts.c:2253,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2254,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2255,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2257,3'
          Dst:             facts_mlst_feat_add
    - functionName:    facts_mlst_feat_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 940
      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:846,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:848,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:851,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:854,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:856,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:859,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:862,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:864,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:867,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:870,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:872,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:875,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:878,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:880,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:883,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:886,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:888,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:891,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:895,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:897,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:900,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:904,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:906,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:909,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:912,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:914,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:917,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:921,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:923,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:926,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:933,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:935,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:938,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:939,3'
          Dst:             pr_feat_add
    - functionName:    facts_init
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2194
      functionLinenumberEnd: 2198
      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:2195,3'
          Dst:             pr_help_add
        - Src:             'mod_facts.c:2196,3'
          Dst:             pr_help_add
    - functionName:    facts_mff
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1384
      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:1161,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1163,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1164,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1165,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1174,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1176,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1178,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1179,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1180,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1183,10'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1185,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1188,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1191,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1190,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1192,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1195,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1196,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1197,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1200,16'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1204,52'
          Dst:             strerror
        - Src:             'mod_facts.c:1204,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1206,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1207,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1208,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1211,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1212,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1214,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1216,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1217,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1218,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1221,7'
          Dst:             facts_filters_allow_path
        - Src:             'mod_facts.c:1224,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1224,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1226,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1227,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1228,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1231,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1235,49'
          Dst:             strerror
        - Src:             'mod_facts.c:1235,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1237,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1238,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1239,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1243,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:1247,9'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1252,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1257,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1256,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1259,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1260,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1261,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1266,11'
          Dst:             strlen
        - Src:             'mod_facts.c:1269,57'
          Dst:             strerror
        - Src:             'mod_facts.c:1269,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1271,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1272,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1273,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1276,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1278,9'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1284,11'
          Dst:             facts_modify_mtime
        - Src:             'mod_facts.c:1285,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1288,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1287,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1290,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1291,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1292,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1295,16'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1300,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1306,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1305,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1308,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1309,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1310,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1315,11'
          Dst:             facts_modify_unix_group
        - Src:             'mod_facts.c:1316,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1319,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1318,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1321,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1322,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1323,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1326,16'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1331,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1333,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1337,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1336,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1339,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1340,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1341,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1346,11'
          Dst:             facts_modify_unix_mode
        - Src:             'mod_facts.c:1347,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1350,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1349,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1352,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1353,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1354,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1361,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1364,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1368,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1369,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1370,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1375,11'
          Dst:             strchr
        - Src:             'mod_facts.c:1382,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1383,10'
          Dst:             mod_create_ret
    - functionName:    facts_mfmt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1386
      functionLinenumberEnd: 1510
      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:1392,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1394,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1395,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1396,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1405,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1407,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1409,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1410,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1411,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1414,10'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1416,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1419,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1422,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1421,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1423,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1426,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1427,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1428,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1431,16'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1435,52'
          Dst:             strerror
        - Src:             'mod_facts.c:1435,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1437,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1438,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1439,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1442,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1443,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1445,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1447,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1448,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1449,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1452,7'
          Dst:             facts_filters_allow_path
        - Src:             'mod_facts.c:1455,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1455,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1457,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1458,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1459,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1462,7'
          Dst:             strlen
        - Src:             'mod_facts.c:1465,53'
          Dst:             strerror
        - Src:             'mod_facts.c:1465,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1467,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1468,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1469,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1472,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1474,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1480,9'
          Dst:             facts_modify_mtime
        - Src:             'mod_facts.c:1482,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1489,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1488,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1491,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1492,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1493,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1503,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1509,10'
          Dst:             mod_create_ret
    - functionName:    facts_mlsd
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1512
      functionLinenumberEnd: 1776
      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:1526,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1528,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1531,20'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1534,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1533,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1535,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1538,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1539,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1540,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1544,27'
          Dst:             pr_fs_getcwd
        - Src:             'mod_facts.c:1547,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1548,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1550,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1552,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1553,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1554,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1561,7'
          Dst:             strpbrk
        - Src:             'mod_facts.c:1562,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1567,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:1568,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1571,35'
          Dst:             strerror
        - Src:             'mod_facts.c:1570,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1573,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1573,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1575,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1576,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1577,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1581,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1583,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1584,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1585,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1589,9'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1608,15'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:1610,29'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1610,15'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1613,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1613,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1619,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1620,20'
          Dst:             pr_auth_name2uid
        - Src:             'mod_facts.c:1634,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1634,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1640,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1641,20'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1655,10'
          Dst:             pr_fsio_opendir
        - Src:             'mod_facts.c:1657,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1661,7'
          Dst:             pr_uid2str
        - Src:             'mod_facts.c:1662,7'
          Dst:             pr_gid2str
        - Src:             'mod_facts.c:1663,18'
          Dst:             strerror
        - Src:             'mod_facts.c:1659,5'
          Dst:             pr_trace_msg
        - Src:             'mod_facts.c:1665,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1665,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1667,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1668,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1669,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1673,7'
          Dst:             pr_data_open
        - Src:             'mod_facts.c:1674,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1676,5'
          Dst:             pr_fsio_closedir
        - Src:             'mod_facts.c:1678,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1679,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1680,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1684,3'
          Dst:             facts_mlinfobuf_init
        - Src:             'mod_facts.c:1686,18'
          Dst:             pr_fsio_readdir
        - Src:             'mod_facts.c:1690,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:1692,16'
          Dst:             pdircat
        - Src:             'mod_facts.c:1693,11'
          Dst:             dir_check
        - Src:             'mod_facts.c:1699,16'
          Dst:             dir_realpath
        - Src:             'mod_facts.c:1701,13'
          Dst:             dir_check
        - Src:             'mod_facts.c:1704,18'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1709,13'
          Dst:             dir_check_canon
        - Src:             'mod_facts.c:1718,17'
          Dst:             make_sub_pool
        - Src:             'mod_facts.c:1719,5'
          Dst:             pr_pool_tag
        - Src:             'mod_facts.c:1720,9'
          Dst:             facts_mlinfo_get
        - Src:             'mod_facts.c:1728,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_facts.c:1730,11'
          Dst:             facts_mlinfobuf_add
        - Src:             'mod_facts.c:1731,14'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1733,5'
          Dst:             destroy_pool
        - Src:             'mod_facts.c:1737,7'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1743,7'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1749,3'
          Dst:             pr_fsio_closedir
        - Src:             'mod_facts.c:1752,5'
          Dst:             pr_data_close2
        - Src:             'mod_facts.c:1753,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1757,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1760,9'
          Dst:             facts_mlinfobuf_flush
        - Src:             'mod_facts.c:1762,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1769,5'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1770,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1773,3'
          Dst:             pr_data_close2
        - Src:             'mod_facts.c:1774,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1775,10'
          Dst:             mod_create_ret
    - functionName:    facts_mlsd_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1778
      functionLinenumberEnd: 1790
      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:1781,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_facts.c:1784,7'
          Dst:             strcmp
        - Src:             'mod_facts.c:1788,3'
          Dst:             pr_data_clear_xfer_pool
    - functionName:    facts_mlst
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1792
      functionLinenumberEnd: 1951
      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:1804,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1806,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1809,20'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1812,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1811,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1813,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1816,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1817,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1818,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1822,27'
          Dst:             pr_fs_getcwd
        - Src:             'mod_facts.c:1825,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1827,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1829,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1831,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1832,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1833,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1840,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1841,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1843,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1847,9'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1857,29'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1857,15'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1860,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1860,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1866,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1867,20'
          Dst:             pr_auth_name2uid
        - Src:             'mod_facts.c:1881,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1881,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1887,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1888,20'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1911,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:1912,7'
          Dst:             facts_mlinfo_get
        - Src:             'mod_facts.c:1914,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1916,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1917,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1918,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1933,19'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1939,19'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:1943,17'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1946,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1947,3'
          Dst:             facts_mlinfo_add
        - Src:             'mod_facts.c:1948,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1950,10'
          Dst:             mod_create_ret
    - functionName:    facts_opts_mlst
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1953
      functionLinenumberEnd: 2062
      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:1957,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1967,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1969,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1970,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1971,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1978,5'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:1979,5'
          Dst:             facts_mlst_feat_add
        - Src:             'mod_facts.c:1984,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1985,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1993,3'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:1996,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1999,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:2003,9'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2004,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2005,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2007,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2008,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2009,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2011,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2012,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2013,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2015,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2016,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2017,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2019,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2020,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2021,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2023,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2024,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2025,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2027,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2028,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2029,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2031,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2032,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2033,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2035,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2036,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2037,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2039,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2040,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2041,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2043,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:2044,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2045,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2048,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:2054,11'
          Dst:             strchr
        - Src:             'mod_facts.c:2057,3'
          Dst:             facts_mlst_feat_add
        - Src:             'mod_facts.c:2060,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:2061,10'
          Dst:             mod_create_ret
    - functionName:    facts_get_show_opt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 141
      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:96,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:100,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:104,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:108,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:112,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:116,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:120,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:124,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:128,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:132,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:136,7'
          Dst:             strcasecmp
    - functionName:    facts_mlinfo_get
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 832
      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:594,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:595,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_facts.c:597,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:600,13'
          Dst:             strerror
        - Src:             'mod_facts.c:599,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:602,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:607,18'
          Dst:             pstrdup
        - Src:             'mod_facts.c:618,19'
          Dst:             pstrdup
        - Src:             'mod_facts.c:628,14'
          Dst:             pr_gmtime
        - Src:             'mod_facts.c:651,21'
          Dst:             pcalloc
        - Src:             'mod_facts.c:652,15'
          Dst:             dir_readlink
        - Src:             'mod_facts.c:658,23'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:670,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:671,15'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:675,15'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:679,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:682,21'
          Dst:             strerror
        - Src:             'mod_facts.c:681,9'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:684,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:717,13'
          Dst:             sstrncpy
        - Src:             'mod_facts.c:721,25'
          Dst:             pr_fsio_readlink
        - Src:             'mod_facts.c:725,26'
          Dst:             __errno_location
        - Src:             'mod_facts.c:728,57'
          Dst:             strerror
        - Src:             'mod_facts.c:727,13'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:730,13'
          Dst:             __errno_location
        - Src:             'mod_facts.c:741,13'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:740,24'
          Dst:             pstrcat
        - Src:             'mod_facts.c:766,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:775,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:778,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:781,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:783,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:795,13'
          Dst:             strlen
        - Src:             'mod_facts.c:804,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:806,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:809,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:811,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:814,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:816,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:830,21'
          Dst:             pstrdup
    - functionName:    facts_mlinfo_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 841
      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:837,10'
          Dst:             facts_mlinfo_fmt
        - Src:             'mod_facts.c:840,3'
          Dst:             pr_response_add
    - functionName:    facts_mlinfo_fmt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          712
      EdgeCount:       108
      CyclomaticComplexity: 31
      functionsReached:
        - facts_mime_type
        - pr_gid2str
        - pr_snprintf
        - pr_uid2str
        - sreplace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:318,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:337,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:350,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:363,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:375,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:389,7'
          Dst:             pr_gid2str
        - Src:             'mod_facts.c:388,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:407,15'
          Dst:             sreplace
        - Src:             'mod_facts.c:409,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:422,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:436,7'
          Dst:             pr_uid2str
        - Src:             'mod_facts.c:435,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:454,14'
          Dst:             sreplace
        - Src:             'mod_facts.c:456,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:471,17'
          Dst:             facts_mime_type
        - Src:             'mod_facts.c:473,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:487,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:490,11'
          Dst:             pr_snprintf
    - functionName:    facts_mime_type
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 304
      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:289,12'
          Dst:             pr_stash_get_symbol2
        - Src:             'mod_facts.c:291,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:295,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_facts.c:296,9'
          Dst:             pr_module_call
        - Src:             'mod_facts.c:302,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: 515
      functionLinenumberEnd: 534
      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:517,20'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_facts.c:520,7'
          Dst:             destroy_pool
        - Src:             'mod_facts.c:523,19'
          Dst:             make_sub_pool
        - Src:             'mod_facts.c:524,5'
          Dst:             pr_pool_tag
        - Src:             'mod_facts.c:526,18'
          Dst:             palloc
        - Src:             'mod_facts.c:527,5'
          Dst:             pr_trace_msg
    - functionName:    facts_mlinfobuf_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 558
      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:540,12'
          Dst:             facts_mlinfo_fmt
        - Src:             'mod_facts.c:548,9'
          Dst:             facts_mlinfobuf_flush
        - Src:             'mod_facts.c:553,3'
          Dst:             sstrcat
    - functionName:    facts_mlinfobuf_flush
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 585
      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:570,11'
          Dst:             pr_data_xfer
        - Src:             'mod_facts.c:571,14'
          Dst:             __errno_location
        - Src:             'mod_facts.c:576,47'
          Dst:             __errno_location
        - Src:             'mod_facts.c:576,54'
          Dst:             strerror
        - Src:             'mod_facts.c:575,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:582,3'
          Dst:             facts_mlinfobuf_init
        - Src:             'mod_facts.c:584,3'
          Dst:             __errno_location
    - functionName:    facts_filters_allow_path
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_filter_allow_path
        - pr_log_pri
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mod_facts.c:147,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_facts.c:146,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_facts.c:152,7'
          Dst:             pr_log_pri
        - Src:             'mod_facts.c:155,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:159,7'
          Dst:             pr_log_pri
        - Src:             'mod_facts.c:162,7'
          Dst:             __errno_location
    - functionName:    facts_modify_mtime
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 1065
      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:973,10'
          Dst:             atoi
        - Src:             'mod_facts.c:977,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:979,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:986,11'
          Dst:             atoi
        - Src:             'mod_facts.c:991,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:993,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1000,9'
          Dst:             atoi
        - Src:             'mod_facts.c:1005,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1007,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1014,10'
          Dst:             atoi
        - Src:             'mod_facts.c:1019,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1021,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1028,9'
          Dst:             atoi
        - Src:             'mod_facts.c:1033,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1035,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1040,9'
          Dst:             atoi
        - Src:             'mod_facts.c:1044,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1046,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1051,35'
          Dst:             facts_mktime
        - Src:             'mod_facts.c:1054,9'
          Dst:             pr_fsio_utimes_with_root
        - Src:             'mod_facts.c:1056,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1059,52'
          Dst:             strerror
        - Src:             'mod_facts.c:1058,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1060,5'
          Dst:             __errno_location
    - functionName:    facts_mktime
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 281
      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:271,9'
          Dst:             facts_secs_per_year
        - Src:             'mod_facts.c:272,9'
          Dst:             facts_secs_per_mon
        - Src:             'mod_facts.c:275,9'
          Dst:             facts_secs_per_day
        - Src:             'mod_facts.c:277,9'
          Dst:             facts_secs_per_hour
        - Src:             'mod_facts.c:278,9'
          Dst:             facts_secs_per_min
    - functionName:    facts_secs_per_year
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 254
      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:253,11'
          Dst:             facts_secs_per_day
    - functionName:    facts_secs_per_mon
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 234
      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:230,15'
          Dst:             facts_leap_year
        - Src:             'mod_facts.c:233,11'
          Dst:             facts_secs_per_day
    - functionName:    facts_secs_per_day
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 201
      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: 190
      functionLinenumberEnd: 194
      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: 183
      functionLinenumberEnd: 187
      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: 207
      functionLinenumberEnd: 222
      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: 1068
      functionLinenumberEnd: 1110
      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:1074,9'
          Dst:             strtoul
        - Src:             'mod_facts.c:1078,11'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1080,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1081,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1086,9'
          Dst:             pr_fsio_chown_with_error
        - Src:             'mod_facts.c:1087,12'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1090,5'
          Dst:             pr_error_set_where
        - Src:             'mod_facts.c:1091,27'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1091,5'
          Dst:             pr_error_set_why
        - Src:             'mod_facts.c:1095,54'
          Dst:             pr_error_strerror
        - Src:             'mod_facts.c:1095,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1096,7'
          Dst:             pr_error_destroy
        - Src:             'mod_facts.c:1102,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1100,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1105,5'
          Dst:             __errno_location
    - functionName:    facts_modify_unix_mode
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1151
      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:1118,10'
          Dst:             strtoul
        - Src:             'mod_facts.c:1121,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1123,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1127,9'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_facts.c:1128,12'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1131,5'
          Dst:             pr_error_set_where
        - Src:             'mod_facts.c:1132,27'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1132,5'
          Dst:             pr_error_set_why
        - Src:             'mod_facts.c:1136,54'
          Dst:             pr_error_strerror
        - Src:             'mod_facts.c:1136,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1137,7'
          Dst:             pr_error_destroy
        - Src:             'mod_facts.c:1143,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1141,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1146,5'
          Dst:             __errno_location
    - functionName:    set_factsadvertise
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2068
      functionLinenumberEnd: 2085
      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:2072,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2072,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2073,3'
          Dst:             check_context
        - Src:             'mod_facts.c:2073,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:2073,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2073,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2073,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2075,21'
          Dst:             get_boolean
        - Src:             'mod_facts.c:2077,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2077,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2080,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2081,16'
          Dst:             pcalloc
        - Src:             'mod_facts.c:2084,10'
          Dst:             mod_create_ret
    - functionName:    set_factsdefault
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2088
      functionLinenumberEnd: 2117
      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:2094,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2094,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2097,3'
          Dst:             check_context
        - Src:             'mod_facts.c:2097,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:2097,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2097,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2097,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2099,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2104,16'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2106,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2106,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2106,7'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2113,16'
          Dst:             palloc
        - Src:             'mod_facts.c:2116,10'
          Dst:             mod_create_ret
    - functionName:    set_factsoptions
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2120
      functionLinenumberEnd: 2163
      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:2126,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2126,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2129,3'
          Dst:             check_context
        - Src:             'mod_facts.c:2129,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:2129,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2129,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2129,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2131,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2134,9'
          Dst:             strcmp
        - Src:             'mod_facts.c:2137,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2140,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2143,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2147,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2147,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2147,7'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2152,16'
          Dst:             palloc
        - Src:             'mod_facts.c:2155,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:2162,10'
          Dst:             mod_create_ret
    - functionName:    log_xfer_stalled_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 982
      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:980,12'
          Dst:             log_any
    - functionName:    log_any
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 846
      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:824,5'
          Dst:             pr_signals_handle
        - Src:             'mod_log.c:843,5'
          Dst:             log_event
    - functionName:    log_event
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 817
      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:775,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:776,13'
          Dst:             pcalloc
        - Src:             'mod_log.c:777,9'
          Dst:             pcalloc
        - Src:             'mod_log.c:783,9'
          Dst:             pr_jot_resolve_logfmt
        - Src:             'mod_log.c:783,9'
          Dst:             resolve_on_meta
        - Src:             'mod_log.c:783,9'
          Dst:             resolve_on_default
        - Src:             'mod_log.c:783,9'
          Dst:             resolve_on_other
        - Src:             'mod_log.c:789,9'
          Dst:             __errno_location
        - Src:             'mod_log.c:791,64'
          Dst:             __errno_location
        - Src:             'mod_log.c:791,55'
          Dst:             strerror
        - Src:             'mod_log.c:790,7'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:794,5'
          Dst:             destroy_pool
        - Src:             'mod_log.c:798,3'
          Dst:             extlog_buffer_append
        - Src:             'mod_log.c:802,5'
          Dst:             pr_log_event_generate
        - Src:             'mod_log.c:805,9'
          Dst:             write
        - Src:             'mod_log.c:807,35'
          Dst:             __errno_location
        - Src:             'mod_log.c:807,26'
          Dst:             strerror
        - Src:             'mod_log.c:806,7'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:811,5'
          Dst:             pr_log_event_generate
        - Src:             'mod_log.c:813,5'
          Dst:             pr_syslog
        - Src:             'mod_log.c:816,3'
          Dst:             destroy_pool
    - functionName:    resolve_on_meta
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 687
      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:511,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:516,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:526,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:539,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:549,16'
          Dst:             pr_uid2str
        - Src:             'mod_log.c:557,16'
          Dst:             pr_gid2str
        - Src:             'mod_log.c:571,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:582,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:600,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:619,14'
          Dst:             get_gmtoff
        - Src:             'mod_log.c:627,22'
          Dst:             strftime
        - Src:             'mod_log.c:630,27'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:681,18'
          Dst:             strlen
        - Src:             'mod_log.c:684,5'
          Dst:             extlog_buffer_append
    - functionName:    resolve_on_default
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 747
      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:699,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:703,20'
          Dst:             strlen
        - Src:             'mod_log.c:744,5'
          Dst:             extlog_buffer_append
    - functionName:    resolve_on_other
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - extlog_buffer_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:755,3'
          Dst:             extlog_buffer_append
    - functionName:    extlog_buffer_append
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:489,3'
          Dst:             pr_trace_msg
    - functionName:    get_gmtoff
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 469
      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:449,3'
          Dst:             time
        - Src:             'mod_log.c:452,24'
          Dst:             pcalloc
        - Src:             'mod_log.c:452,9'
          Dst:             gmtime_r
        - Src:             'mod_log.c:457,10'
          Dst:             pr_localtime
    - functionName:    log_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 871
      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:857,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:858,35'
          Dst:             pstrdup
        - Src:             'mod_log.c:858,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_log.c:861,23'
          Dst:             pr_response_blocked
        - Src:             'mod_log.c:863,12'
          Dst:             pr_response_block
        - Src:             'mod_log.c:866,10'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_log.c:869,3'
          Dst:             pr_response_block
        - Src:             'mod_log.c:870,3'
          Dst:             destroy_pool
    - functionName:    find_extendedlogs
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1101
      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:1020,7'
          Dst:             find_config2
        - Src:             'mod_log.c:1025,5'
          Dst:             pr_signals_handle
        - Src:             'mod_log.c:1053,13'
          Dst:             strcmp
        - Src:             'mod_log.c:1059,13'
          Dst:             strcasecmp
        - Src:             'mod_log.c:1064,17'
          Dst:             strcmp
        - Src:             'mod_log.c:1072,9'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1082,28'
          Dst:             pcalloc
        - Src:             'mod_log.c:1084,27'
          Dst:             pstrdup
        - Src:             'mod_log.c:1091,17'
          Dst:             xaset_create
        - Src:             'mod_log.c:1094,5'
          Dst:             xaset_insert
        - Src:             'mod_log.c:1098,9'
          Dst:             find_config_next2
    - functionName:    log_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 972
      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:946,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:946,3'
          Dst:             log_exit_ev
        - Src:             'mod_log.c:947,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:947,3'
          Dst:             log_sess_reinit_ev
        - Src:             'mod_log.c:948,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:948,3'
          Dst:             log_xfer_stalled_ev
        - Src:             'mod_log.c:957,16'
          Dst:             close
        - Src:             'mod_log.c:965,10'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:967,9'
          Dst:             log_sess_init
        - Src:             'mod_log.c:969,5'
          Dst:             pr_session_disconnect
    - functionName:    log_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1373
      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:1205,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1205,3'
          Dst:             log_sess_reinit_ev
        - Src:             'mod_log.c:1208,7'
          Dst:             find_config
        - Src:             'mod_log.c:1213,9'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:1215,37'
          Dst:             __errno_location
        - Src:             'mod_log.c:1215,28'
          Dst:             strerror
        - Src:             'mod_log.c:1214,7'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1220,20'
          Dst:             get_param_ptr
        - Src:             'mod_log.c:1222,5'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:1224,9'
          Dst:             strncasecmp
        - Src:             'mod_log.c:1227,7'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1228,13'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:1229,16'
          Dst:             __errno_location
        - Src:             'mod_log.c:1230,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1235,29'
          Dst:             strerror
        - Src:             'mod_log.c:1234,11'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1238,11'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1246,9'
          Dst:             find_config
        - Src:             'mod_log.c:1251,7'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:1253,11'
          Dst:             strcasecmp
        - Src:             'mod_log.c:1256,16'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:1258,9'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:1259,9'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1260,15'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:1261,18'
          Dst:             __errno_location
        - Src:             'mod_log.c:1262,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1263,9'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:1267,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1272,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1279,60'
          Dst:             strerror
        - Src:             'mod_log.c:1278,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1282,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1290,9'
          Dst:             log_discard
        - Src:             'mod_log.c:1296,3'
          Dst:             find_extendedlogs
        - Src:             'mod_log.c:1302,11'
          Dst:             strncasecmp
        - Src:             'mod_log.c:1305,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1308,9'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:1309,9'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1310,15'
          Dst:             pr_log_openfile
        - Src:             'mod_log.c:1311,18'
          Dst:             __errno_location
        - Src:             'mod_log.c:1312,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1313,9'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:1319,34'
          Dst:             strerror
        - Src:             'mod_log.c:1318,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1322,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1327,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1331,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1337,21'
          Dst:             strchr
        - Src:             'mod_log.c:1339,31'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_log.c:1346,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1346,3'
          Dst:             log_exit_ev
        - Src:             'mod_log.c:1347,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1347,3'
          Dst:             log_xfer_stalled_ev
        - Src:             'mod_log.c:1356,16'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:1357,37'
          Dst:             pstrdup
        - Src:             'mod_log.c:1357,11'
          Dst:             pr_cmd_alloc
        - Src:             'mod_log.c:1360,25'
          Dst:             pr_response_blocked
        - Src:             'mod_log.c:1362,14'
          Dst:             pr_response_block
        - Src:             'mod_log.c:1365,12'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_log.c:1368,5'
          Dst:             pr_response_block
        - Src:             'mod_log.c:1369,5'
          Dst:             destroy_pool
    - functionName:    log_init
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 997
      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:988,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:989,3'
          Dst:             pr_pool_tag
        - Src:             'mod_log.c:992,3'
          Dst:             parse_logformat
        - Src:             'mod_log.c:994,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:994,3'
          Dst:             log_postparse_ev
        - Src:             'mod_log.c:995,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:995,3'
          Dst:             log_restart_ev
    - functionName:    parse_logformat
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 203
      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:153,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:154,13'
          Dst:             pcalloc
        - Src:             'mod_log.c:155,16'
          Dst:             pcalloc
        - Src:             'mod_log.c:161,9'
          Dst:             pr_jot_parse_logfmt
        - Src:             'mod_log.c:161,9'
          Dst:             pr_jot_parse_on_meta
        - Src:             'mod_log.c:161,9'
          Dst:             pr_jot_parse_on_unknown
        - Src:             'mod_log.c:161,9'
          Dst:             pr_jot_parse_on_other
        - Src:             'mod_log.c:165,64'
          Dst:             __errno_location
        - Src:             'mod_log.c:165,55'
          Dst:             strerror
        - Src:             'mod_log.c:164,5'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:167,5'
          Dst:             destroy_pool
        - Src:             'mod_log.c:173,24'
          Dst:             pcalloc
        - Src:             'mod_log.c:174,21'
          Dst:             pstrdup
        - Src:             'mod_log.c:175,19'
          Dst:             palloc
        - Src:             'mod_log.c:180,18'
          Dst:             xaset_create
        - Src:             'mod_log.c:183,3'
          Dst:             xaset_insert_end
        - Src:             'mod_log.c:193,9'
          Dst:             add_config_param
        - Src:             'mod_log.c:194,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:195,18'
          Dst:             palloc
        - Src:             'mod_log.c:202,3'
          Dst:             destroy_pool
    - functionName:    log_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 924
      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:876,7'
          Dst:             find_config
        - Src:             'mod_log.c:881,5'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:883,9'
          Dst:             strcasecmp
        - Src:             'mod_log.c:886,14'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:888,7'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:889,7'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:890,13'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:891,16'
          Dst:             __errno_location
        - Src:             'mod_log.c:892,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:893,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:897,11'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:902,11'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:908,58'
          Dst:             strerror
        - Src:             'mod_log.c:907,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:911,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:917,9'
          Dst:             exit
        - Src:             'mod_log.c:921,7'
          Dst:             log_discard
    - functionName:    log_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 938
      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:927,3'
          Dst:             destroy_pool
        - Src:             'mod_log.c:934,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:935,3'
          Dst:             pr_pool_tag
        - Src:             'mod_log.c:937,3'
          Dst:             parse_logformat
    - functionName:    log_pre_dele
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1122
      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:1106,3'
          Dst:             jot_set_deleted_filesz
        - Src:             'mod_log.c:1109,5'
          Dst:             pr_fs_decode_path
        - Src:             'mod_log.c:1108,10'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:1116,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_log.c:1117,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_log.c:1118,7'
          Dst:             jot_set_deleted_filesz
    - functionName:    log_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1194
      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:1137,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1139,16'
          Dst:             close
        - Src:             'mod_log.c:1153,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1155,16'
          Dst:             close
        - Src:             'mod_log.c:1175,15'
          Dst:             strcmp
        - Src:             'mod_log.c:1176,13'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1178,20'
          Dst:             close
        - Src:             'mod_log.c:1186,13'
          Dst:             pr_jot_filters_include_classes
        - Src:             'mod_log.c:1187,18'
          Dst:             close
    - functionName:    set_allowlogsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 418
      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:405,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:405,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:406,3'
          Dst:             check_context
        - Src:             'mod_log.c:406,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:406,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:406,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:406,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:408,24'
          Dst:             get_boolean
        - Src:             'mod_log.c:410,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:410,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:413,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:414,16'
          Dst:             pcalloc
        - Src:             'mod_log.c:417,10'
          Dst:             mod_create_ret
    - functionName:    set_extendedlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 398
      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:322,3'
          Dst:             check_context
        - Src:             'mod_log.c:322,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:322,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:322,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:322,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:327,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:327,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:330,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:333,7'
          Dst:             strncasecmp
        - Src:             'mod_log.c:336,11'
          Dst:             strchr
        - Src:             'mod_log.c:338,9'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_log.c:339,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:339,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:339,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:343,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:346,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:346,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:346,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:350,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:360,11'
          Dst:             strchr
        - Src:             'mod_log.c:366,19'
          Dst:             pr_jot_filters_create
        - Src:             'mod_log.c:369,7'
          Dst:             __errno_location
        - Src:             'mod_log.c:369,7'
          Dst:             strerror
        - Src:             'mod_log.c:369,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:369,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:369,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:376,13'
          Dst:             pr_jot_filters_parse_sifts
        - Src:             'mod_log.c:378,9'
          Dst:             __errno_location
        - Src:             'mod_log.c:378,9'
          Dst:             strerror
        - Src:             'mod_log.c:378,9'
          Dst:             pstrcat
        - Src:             'mod_log.c:378,9'
          Dst:             pstrcat
        - Src:             'mod_log.c:378,9'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:387,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:390,7'
          Dst:             pr_module_exists
        - Src:             'mod_log.c:397,10'
          Dst:             mod_create_ret
    - functionName:    set_logformat
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 216
      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:207,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:207,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:208,3'
          Dst:             check_context
        - Src:             'mod_log.c:208,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:208,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:208,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:208,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:210,7'
          Dst:             strlen
        - Src:             'mod_log.c:211,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:211,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:214,3'
          Dst:             parse_logformat
        - Src:             'mod_log.c:215,10'
          Dst:             mod_create_ret
    - functionName:    set_logoptions
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 314
      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:246,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:257,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:268,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:279,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:226,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:226,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:229,3'
          Dst:             check_context
        - Src:             'mod_log.c:229,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:229,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:229,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:229,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:239,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:239,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:239,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:245,9'
          Dst:             strcasecmp
        - Src:             'mod_log.c:256,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:267,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:278,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:290,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:290,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:290,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:295,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:296,16'
          Dst:             palloc
        - Src:             'mod_log.c:307,9'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:309,51'
          Dst:             __errno_location
        - Src:             'mod_log.c:309,42'
          Dst:             strerror
        - Src:             'mod_log.c:308,7'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:313,10'
          Dst:             mod_create_ret
    - functionName:    set_serverlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 428
      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:422,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:422,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:423,3'
          Dst:             check_context
        - Src:             'mod_log.c:423,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:423,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:423,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:423,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:425,3'
          Dst:             add_config_param_str
        - Src:             'mod_log.c:427,10'
          Dst:             mod_create_ret
    - functionName:    set_systemlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 437
      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:432,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:432,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:433,3'
          Dst:             check_context
        - Src:             'mod_log.c:433,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:433,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:433,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:433,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:435,10'
          Dst:             add_config_param_str
        - Src:             'mod_log.c:436,10'
          Dst:             mod_create_ret
    - functionName:    xfer_timedout
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4457
      functionLinenumberEnd: 4466
      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:4459,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4460,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:4463,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4464,5'
          Dst:             retr_abort
    - functionName:    stor_abort
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1105
      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:1004,14'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:1012,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1014,11'
          Dst:             pr_fsio_close_with_error
        - Src:             'mod_xfer.c:1015,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1018,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1019,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1019,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1023,41'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1023,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1024,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1029,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:1028,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1032,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1038,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1047,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1050,15'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1052,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1055,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1056,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1056,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1061,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1061,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1065,43'
          Dst:             strerror
        - Src:             'mod_xfer.c:1064,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1069,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1078,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1080,13'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1081,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1084,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1085,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1085,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1090,40'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1090,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1091,13'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1096,34'
          Dst:             strerror
        - Src:             'mod_xfer.c:1095,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1103,3'
          Dst:             destroy_pool
        - Src:             'mod_xfer.c:1104,3'
          Dst:             _log_transfer
    - functionName:    retr_abort
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 991
      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:986,5'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:990,3'
          Dst:             _log_transfer
    - functionName:    _log_transfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 218
      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:186,5'
          Dst:             gettimeofday
        - Src:             'mod_xfer.c:199,14'
          Dst:             dir_abs_path
        - Src:             'mod_xfer.c:202,36'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'mod_xfer.c:202,5'
          Dst:             xferlog_write
        - Src:             'mod_xfer.c:208,36'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'mod_xfer.c:208,5'
          Dst:             xferlog_write
        - Src:             'mod_xfer.c:214,3'
          Dst:             pr_log_debug
    - functionName:    xfer_init
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4488
      functionLinenumberEnd: 4507
      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:4491,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4492,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4493,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4494,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4495,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4496,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4497,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4498,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4499,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4500,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4505,3'
          Dst:             pr_feat_add
    - functionName:    xfer_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4510
      functionLinenumberEnd: 4573
      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:4514,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4514,3'
          Dst:             xfer_exit_ev
        - Src:             'mod_xfer.c:4515,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4515,3'
          Dst:             xfer_sess_reinit_ev
        - Src:             'mod_xfer.c:4517,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4517,3'
          Dst:             xfer_sigusr2_ev
        - Src:             'mod_xfer.c:4519,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4519,3'
          Dst:             xfer_timeout_session_ev
        - Src:             'mod_xfer.c:4521,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4521,3'
          Dst:             xfer_timeout_stalled_ev
        - Src:             'mod_xfer.c:4532,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:4538,26'
          Dst:             pr_fsio_open
        - Src:             'mod_xfer.c:4541,35'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4541,26'
          Dst:             strerror
        - Src:             'mod_xfer.c:4540,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4544,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:4546,37'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4546,28'
          Dst:             strerror
        - Src:             'mod_xfer.c:4545,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4547,9'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4552,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4556,39'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4556,30'
          Dst:             strerror
        - Src:             'mod_xfer.c:4554,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4557,11'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4569,7'
          Dst:             strcmp
    - functionName:    xfer_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4377
      functionLinenumberEnd: 4403
      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:4381,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4382,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:4386,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4387,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:4393,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:4397,13'
          Dst:             pr_cmd_alloc
        - Src:             'mod_xfer.c:4400,12'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_xfer.c:4401,12'
          Dst:             pr_cmd_dispatch_phase
    - functionName:    xfer_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4405
      functionLinenumberEnd: 4426
      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:4410,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4410,3'
          Dst:             xfer_exit_ev
        - Src:             'mod_xfer.c:4411,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4411,3'
          Dst:             xfer_sess_reinit_ev
        - Src:             'mod_xfer.c:4412,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4412,3'
          Dst:             xfer_sigusr2_ev
        - Src:             'mod_xfer.c:4413,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4413,3'
          Dst:             xfer_timeout_stalled_ev
        - Src:             'mod_xfer.c:4417,12'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4421,9'
          Dst:             xfer_sess_init
        - Src:             'mod_xfer.c:4423,5'
          Dst:             pr_session_disconnect
    - functionName:    xfer_sigusr2_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4428
      functionLinenumberEnd: 4455
      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:4430,7'
          Dst:             pr_module_exists
        - Src:             'mod_xfer.c:4441,18'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:4442,7'
          Dst:             pr_pool_tag
        - Src:             'mod_xfer.c:4444,13'
          Dst:             pr_cmd_alloc
        - Src:             'mod_xfer.c:4449,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4450,7'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:4452,7'
          Dst:             destroy_pool
    - functionName:    xfer_timeout_session_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4468
      functionLinenumberEnd: 4470
      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:4469,3'
          Dst:             xfer_timedout
    - functionName:    xfer_timeout_stalled_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4472
      functionLinenumberEnd: 4483
      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:4481,5'
          Dst:             xfer_timedout
    - functionName:    xfer_type
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3224
      functionLinenumberEnd: 3319
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          332
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - __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:3230,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3229,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3232,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3233,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3234,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3237,10'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3238,7'
          Dst:             __ctype_b_loc
        - Src:             'mod_xfer.c:3239,15'
          Dst:             toupper
        - Src:             'mod_xfer.c:3242,7'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3244,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3245,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3248,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3249,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3250,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3256,14'
          Dst:             strcmp
        - 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:3269,14'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3271,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3274,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3275,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3276,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3279,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3283,16'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3288,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3291,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3292,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3293,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3297,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3300,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3301,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3302,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3317,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3318,10'
          Dst:             mod_create_ret
    - functionName:    xfer_stru
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3321
      functionLinenumberEnd: 3375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          133
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - __ctype_b_loc
        - __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:3338,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:3326,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3325,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3328,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3329,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3330,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3334,7'
          Dst:             __ctype_b_loc
        - Src:             'mod_xfer.c:3335,15'
          Dst:             toupper
        - Src:             'mod_xfer.c:3341,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3342,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3361,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3360,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3363,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3364,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3365,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3369,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3368,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3371,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3372,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3373,14'
          Dst:             mod_create_ret
    - functionName:    xfer_mode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3377
      functionLinenumberEnd: 3418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          133
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - __ctype_b_loc
        - __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:3394,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:3382,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3381,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3384,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3385,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3386,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3390,7'
          Dst:             __ctype_b_loc
        - Src:             'mod_xfer.c:3391,15'
          Dst:             toupper
        - Src:             'mod_xfer.c:3397,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3398,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3405,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3404,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3407,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3408,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3409,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3413,5'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3412,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3415,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3416,3'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3417,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_mode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1412
      functionLinenumberEnd: 1423
      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:1413,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1413,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1415,7'
          Dst:             strcmp
    - functionName:    xfer_allo
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3420
      functionLinenumberEnd: 3499
      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:3431,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3430,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3433,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3434,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3435,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3439,18'
          Dst:             strtoull
        - Src:             'mod_xfer.c:3445,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3447,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3448,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3449,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3457,12'
          Dst:             pr_fs_getcwd
        - Src:             'mod_xfer.c:3459,11'
          Dst:             pr_fs_getsize2
        - Src:             'mod_xfer.c:3466,24'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3466,15'
          Dst:             strerror
        - Src:             'mod_xfer.c:3464,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3467,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3478,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3481,56'
          Dst:             strerror
        - Src:             'mod_xfer.c:3481,9'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3483,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3484,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3485,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3488,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3491,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3495,5'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3498,10'
          Dst:             mod_create_ret
    - functionName:    xfer_smnt
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3501
      functionLinenumberEnd: 3503
      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_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3502,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3503,10'
          Dst:             mod_create_ret
    - functionName:    xfer_pre_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2667
      functionLinenumberEnd: 2803
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          474
      EdgeCount:       91
      CyclomaticComplexity: 26
      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_session_get_protocol
        - pr_table_add
        - pstrdup
        - strcmp
        - strerror
        - xfer_check_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2677,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2676,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2679,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2680,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2681,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2684,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_xfer.c:2687,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2690,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:2689,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2691,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2694,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2695,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2696,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2699,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:2700,9'
          Dst:             dir_realpath
        - Src:             'mod_xfer.c:2708,11'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:2712,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:2713,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2715,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2717,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2717,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2719,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2720,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2721,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2729,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:2736,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:2737,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2739,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2740,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2741,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2744,11'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:2746,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2748,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2748,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2750,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2751,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2752,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2765,13'
          Dst:             pr_session_get_protocol
        - Src:             'mod_xfer.c:2766,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:2767,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:2768,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2771,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2772,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2773,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2780,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:2784,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2788,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2789,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2790,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2795,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:2794,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2796,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2798,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2798,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2797,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2802,10'
          Dst:             mod_create_ret
    - functionName:    xfer_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2825
      functionLinenumberEnd: 3190
      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:2838,3'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:2840,9'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2842,13'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:2843,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2846,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2847,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2847,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2852,7'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2853,7'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2853,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2850,12'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2856,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2856,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2857,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2861,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2861,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2863,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2864,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2865,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2868,7'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:2870,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2872,12'
          Dst:             strerror
        - Src:             'mod_xfer.c:2871,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2874,5'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2876,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2876,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2878,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2879,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2880,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2888,3'
          Dst:             pr_fs_fadvise
        - Src:             'mod_xfer.c:2910,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2913,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2915,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2918,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2919,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2920,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2938,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2942,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2943,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2946,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2947,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2948,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2951,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2952,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2953,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2954,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2959,23'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2960,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2961,14'
          Dst:             strerror
        - Src:             'mod_xfer.c:2957,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2964,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:2963,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2965,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2968,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2969,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2970,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2984,17'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2988,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2990,12'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2999,3'
          Dst:             pr_alarms_block
        - Src:             'mod_xfer.c:3002,3'
          Dst:             pr_data_init
        - Src:             'mod_xfer.c:3007,3'
          Dst:             pr_alarms_unblock
        - Src:             'mod_xfer.c:3029,7'
          Dst:             pr_data_open
        - Src:             'mod_xfer.c:3030,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3032,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3033,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3035,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3036,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3037,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3041,25'
          Dst:             find_max_nbytes
        - Src:             'mod_xfer.c:3056,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3061,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3064,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3066,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3067,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3068,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3071,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_xfer.c:3072,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:3073,3'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:3076,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_xfer.c:3090,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:3096,11'
          Dst:             transmit_data
        - Src:             'mod_xfer.c:3107,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3108,7'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3141,9'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3144,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3145,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3146,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3164,5'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:3168,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3169,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3171,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3172,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3173,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3182,3'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:3184,3'
          Dst:             retr_complete
        - Src:             'mod_xfer.c:3185,3'
          Dst:             xfer_displayfile
        - Src:             'mod_xfer.c:3186,3'
          Dst:             pr_data_close2
        - Src:             'mod_xfer.c:3187,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3189,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2805
      functionLinenumberEnd: 2822
      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:2808,10'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2812,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:2815,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2817,14'
          Dst:             pr_table_add
    - functionName:    xfer_log_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3554
      functionLinenumberEnd: 3567
      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:3555,3'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:3561,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_err_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3506
      functionLinenumberEnd: 3535
      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:3512,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:3516,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3518,13'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:3519,15'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3521,50'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3521,41'
          Dst:             strerror
        - Src:             'mod_xfer.c:3520,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3528,3'
          Dst:             pr_data_reset
        - Src:             'mod_xfer.c:3529,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_pre_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1701
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         153
      ICount:          931
      EdgeCount:       205
      CyclomaticComplexity: 54
      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_session_get_protocol
        - pr_snprintf
        - pr_table_add
        - pr_table_remove
        - pstrdup
        - sreplace
        - strcasecmp
        - strcmp
        - strerror
        - strstr
        - xfer_check_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_xfer.c:1478,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:1439,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:1438,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1441,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1442,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1443,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1446,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_xfer.c:1449,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1452,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1451,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1453,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1456,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1457,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1458,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1461,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:1462,10'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:1465,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:1466,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1468,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1470,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:1470,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1472,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1473,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1474,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1477,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_xfer.c:1483,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1485,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1487,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1488,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1489,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1492,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1494,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1496,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1497,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1498,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1501,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1502,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1504,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1505,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1506,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1509,11'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1511,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1516,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1517,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1519,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1520,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1521,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1536,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1538,14'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1563,13'
          Dst:             pr_session_get_protocol
        - Src:             'mod_xfer.c:1564,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:1565,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:1566,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1569,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1570,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1571,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1578,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1585,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1587,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1592,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1593,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1594,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1600,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1601,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1602,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1603,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1609,12'
          Dst:             pr_table_remove
        - Src:             'mod_xfer.c:1612,9'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1611,9'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1613,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1616,20'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1616,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:1614,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1623,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1622,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1624,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1626,68'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1626,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:1625,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1630,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:1643,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1645,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1649,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1650,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1651,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1668,11'
          Dst:             strstr
        - Src:             'mod_xfer.c:1672,9'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:1674,18'
          Dst:             sreplace
        - Src:             'mod_xfer.c:1677,11'
          Dst:             strstr
        - Src:             'mod_xfer.c:1681,9'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:1683,18'
          Dst:             sreplace
        - Src:             'mod_xfer.c:1686,11'
          Dst:             get_hidden_store_path
        - Src:             'mod_xfer.c:1687,22'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1689,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1690,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1691,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1695,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1700,10'
          Dst:             mod_create_ret
    - functionName:    xfer_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1933
      functionLinenumberEnd: 2445
      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:1947,3'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:1949,23'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1950,30'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1958,16'
          Dst:             pr_fs_getcwd
        - Src:             'mod_xfer.c:1958,3'
          Dst:             pr_fs_setcwd
        - Src:             'mod_xfer.c:1970,11'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1972,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:1978,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:1983,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:1985,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1988,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1989,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1989,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1994,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:1995,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:1996,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1992,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2000,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:2002,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2005,11'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2007,30'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2007,21'
          Dst:             strerror
        - Src:             'mod_xfer.c:2006,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2008,16'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2013,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2015,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2016,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2016,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2021,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2022,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2023,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2019,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2038,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:2039,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2042,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2043,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2043,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2048,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2049,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2049,55'
          Dst:             strerror
        - Src:             'mod_xfer.c:2046,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2064,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:2065,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2067,53'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2067,44'
          Dst:             strerror
        - Src:             'mod_xfer.c:2066,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2068,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2070,16'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:2072,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2072,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2071,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2073,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2077,14'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2078,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2093,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2095,14'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2098,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2099,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2100,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2115,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2115,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2116,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2121,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2120,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2124,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2124,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2126,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2127,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2128,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2136,3'
          Dst:             pr_fs_fadvise
        - Src:             'mod_xfer.c:2139,17'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2143,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2145,12'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2152,10'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:2159,3'
          Dst:             pr_alarms_block
        - Src:             'mod_xfer.c:2162,3'
          Dst:             pr_data_init
        - Src:             'mod_xfer.c:2168,23'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2169,30'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2173,3'
          Dst:             pr_alarms_unblock
        - Src:             'mod_xfer.c:2176,3'
          Dst:             stor_chown
        - Src:             'mod_xfer.c:2182,7'
          Dst:             pr_data_open
        - Src:             'mod_xfer.c:2183,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2185,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2186,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2188,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2189,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2190,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2200,22'
          Dst:             find_max_nbytes
        - Src:             'mod_xfer.c:2208,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_xfer.c:2209,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2210,3'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2213,17'
          Dst:             pr_data_xfer
        - Src:             'mod_xfer.c:2216,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:2230,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2234,7'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2245,7'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2246,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2247,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2248,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2256,11'
          Dst:             pr_fsio_write_with_error
        - Src:             'mod_xfer.c:2257,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2262,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2263,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:2265,13'
          Dst:             pr_fsio_write_with_error
        - Src:             'mod_xfer.c:2266,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2273,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2275,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2276,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2276,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2282,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2283,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2284,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2280,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2287,36'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2287,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2288,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2292,7'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2293,7'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2295,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2296,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2297,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2301,5'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:2311,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2316,9'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2318,9'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2319,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2320,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2321,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2327,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2328,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2330,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2331,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2332,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2339,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2346,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2347,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2348,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2349,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2357,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2362,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2364,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2365,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2366,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2367,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2371,3'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:2373,7'
          Dst:             stor_complete
        - Src:             'mod_xfer.c:2374,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2376,5'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:2385,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2385,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2387,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2388,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2389,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2401,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2401,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2403,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2404,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2405,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2410,9'
          Dst:             pr_fsio_rename
        - Src:             'mod_xfer.c:2411,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2419,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2418,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2422,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2421,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2424,11'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:2425,13'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2427,48'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2427,39'
          Dst:             strerror
        - Src:             'mod_xfer.c:2426,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2431,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2432,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2433,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2440,3'
          Dst:             xfer_displayfile
        - Src:             'mod_xfer.c:2441,3'
          Dst:             pr_data_close2
        - Src:             'mod_xfer.c:2442,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2444,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1855
      functionLinenumberEnd: 1872
      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:1858,10'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1862,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:1865,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:1867,14'
          Dst:             pr_table_add
    - functionName:    xfer_log_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3538
      functionLinenumberEnd: 3551
      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:3539,3'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:3545,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_pre_stou
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1707
      functionLinenumberEnd: 1853
      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:1723,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:1722,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1725,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1726,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1727,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1730,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1731,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1733,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1734,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1735,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1745,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1748,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1751,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1752,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1753,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1759,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:1767,14'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1769,13'
          Dst:             mkstemp
        - Src:             'mod_xfer.c:1771,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1774,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1773,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1777,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1780,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1781,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1782,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1792,10'
          Dst:             close
        - Src:             'mod_xfer.c:1794,14'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:1797,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:1798,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1803,12'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:1804,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1806,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:1806,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1808,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1809,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1810,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1813,10'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1818,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1822,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1823,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1825,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1826,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1827,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1833,12'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:1834,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1837,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1838,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1839,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1844,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1843,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1845,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1847,68'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1847,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:1846,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1852,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_stou
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1880
      functionLinenumberEnd: 1912
      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:1887,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1897,7'
          Dst:             pr_fsio_chmod
        - Src:             'mod_xfer.c:1900,33'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1900,24'
          Dst:             strerror
        - Src:             'mod_xfer.c:1899,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1903,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:1906,17'
          Dst:             palloc
        - Src:             'mod_xfer.c:1908,12'
          Dst:             pr_table_add
    - functionName:    xfer_pre_appe
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1918
      functionLinenumberEnd: 1931
      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:1921,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1922,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1924,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1925,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1926,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1930,10'
          Dst:             xfer_pre_stor
    - functionName:    xfer_abor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3192
      functionLinenumberEnd: 3213
      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:3195,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3194,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3197,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3198,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3199,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3203,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:3206,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3209,3'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3211,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3212,10'
          Dst:             mod_create_ret
    - functionName:    xfer_log_abor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3215
      functionLinenumberEnd: 3221
      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:3218,3'
          Dst:             pr_data_reset
        - Src:             'mod_xfer.c:3219,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_opts_rest
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1397
      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:1327,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1330,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1332,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1333,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1334,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1337,12'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1347,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1349,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1350,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1351,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1355,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1359,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1363,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:1364,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1367,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1368,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1369,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1370,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1373,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1377,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1381,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:1382,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1385,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1386,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1387,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1388,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1392,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1394,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1395,3'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1396,10'
          Dst:             mod_create_ret
    - functionName:    xfer_rest
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2506
      functionLinenumberEnd: 2561
      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:2512,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2511,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2514,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2515,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2516,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2519,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2521,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2523,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2526,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2527,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2528,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2543,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2544,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2548,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2549,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2550,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2558,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2560,10'
          Dst:             mod_create_ret
    - functionName:    xfer_rang
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2563
      functionLinenumberEnd: 2661
      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:2569,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2568,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2571,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2572,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2573,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2576,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:2579,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2581,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:2580,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2583,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2584,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2585,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2588,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2590,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2592,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2595,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2596,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2597,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2600,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2602,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2604,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2607,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2608,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2609,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2621,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2622,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2625,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2627,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2629,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2630,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2631,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2636,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2637,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2641,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2642,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2643,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2657,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2660,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_prot
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1399
      functionLinenumberEnd: 1410
      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:1400,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1400,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1402,7'
          Dst:             strcmp
    - functionName:    xfer_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3614
      functionLinenumberEnd: 3680
      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:3622,9'
          Dst:             find_config
        - Src:             'mod_xfer.c:3628,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3634,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3637,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_xfer.c:3641,7'
          Dst:             pr_timer_add
        - Src:             'mod_xfer.c:3641,7'
          Dst:             noxfer_timeout_cb
        - Src:             'mod_xfer.c:3646,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3649,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_xfer.c:3656,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3660,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:3665,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:3669,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3670,5'
          Dst:             pr_data_ignore_ascii
    - functionName:    noxfer_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3570
      functionLinenumberEnd: 3612
      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:3574,13'
          Dst:             pr_data_get_timeout
        - Src:             'mod_xfer.c:3577,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:3585,3'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:3586,3'
          Dst:             pr_response_send_async
        - Src:             'mod_xfer.c:3589,3'
          Dst:             pr_timer_remove
        - Src:             'mod_xfer.c:3590,3'
          Dst:             pr_timer_remove
        - Src:             'mod_xfer.c:3597,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3599,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3601,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3605,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_xfer.c:3607,3'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3608,3'
          Dst:             pr_session_disconnect
    - functionName:    parse_offset
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2448
      functionLinenumberEnd: 2504
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - strerror
        - strtoull
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2459,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2463,3'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2466,7'
          Dst:             strtoull
        - Src:             'mod_xfer.c:2468,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2481,69'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2481,60'
          Dst:             strerror
        - Src:             'mod_xfer.c:2480,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2482,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2487,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2496,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2498,5'
          Dst:             __errno_location
    - functionName:    xfer_check_limit
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         77
      ICount:          563
      EdgeCount:       104
      CyclomaticComplexity: 29
      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:270,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_xfer.c:271,7'
          Dst:             strcmp
        - Src:             'mod_xfer.c:272,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_xfer.c:276,3'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:280,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_xfer.c:282,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:289,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:296,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:303,11'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:314,12'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_xfer.c:315,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_xfer.c:316,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:321,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:322,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:328,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:329,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:335,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:336,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:345,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_xfer.c:347,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:361,7'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:364,7'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:365,37'
          Dst:             sreplace
        - Src:             'mod_xfer.c:365,7'
          Dst:             pr_response_send
        - Src:             'mod_xfer.c:367,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:373,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:376,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:383,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:390,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:397,11'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:408,12'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_xfer.c:409,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_xfer.c:410,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:412,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:413,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:419,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:420,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:426,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:427,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:436,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_xfer.c:438,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:452,7'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:455,7'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:456,37'
          Dst:             sreplace
        - Src:             'mod_xfer.c:456,7'
          Dst:             pr_response_send
        - Src:             'mod_xfer.c:458,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:464,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: 798
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          444
      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:817,5'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:818,11'
          Dst:             pr_fsio_lchown_with_error
        - Src:             'mod_xfer.c:820,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:821,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:824,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:825,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:825,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:829,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:829,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:830,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:835,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:834,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:841,22'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:842,11'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:840,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:846,11'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:845,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:849,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:850,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:853,20'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:853,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:851,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:867,9'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:868,15'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_xfer.c:869,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:870,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:873,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:874,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:874,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:878,40'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:878,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:879,13'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:884,42'
          Dst:             strerror
        - Src:             'mod_xfer.c:883,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:888,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:911,7'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:914,11'
          Dst:             pr_fsio_lchown_with_error
        - Src:             'mod_xfer.c:916,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:919,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:923,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:924,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:924,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:928,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:928,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:929,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:934,53'
          Dst:             strerror
        - Src:             'mod_xfer.c:933,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:940,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:938,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:942,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:943,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:946,51'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:946,42'
          Dst:             strerror
        - Src:             'mod_xfer.c:944,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:951,11'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:954,15'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_xfer.c:955,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:958,11'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:962,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:963,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:963,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:967,40'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:967,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:968,13'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:974,42'
          Dst:             strerror
        - Src:             'mod_xfer.c:972,13'
          Dst:             pr_log_debug
    - functionName:    find_max_nbytes
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 176
      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:94,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:96,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:105,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:106,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'mod_xfer.c:119,18'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:120,13'
          Dst:             pr_expr_eval_group_or
        - Src:             'mod_xfer.c:133,18'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:134,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'mod_xfer.c:161,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:170,5'
          Dst:             pr_log_debug
    - functionName:    stor_complete
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1177
      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:1113,14'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:1118,13'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1120,9'
          Dst:             pr_fsio_close_with_error
        - Src:             'mod_xfer.c:1121,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1124,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1125,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1125,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1129,39'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1129,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1130,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1135,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1134,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1143,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1146,15'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1148,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1151,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1152,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1152,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1157,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1157,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1161,43'
          Dst:             strerror
        - Src:             'mod_xfer.c:1160,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1165,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1171,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1175,3'
          Dst:             destroy_pool
    - functionName:    xfer_displayfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 496
      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:473,9'
          Dst:             pr_display_fh
        - 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:479,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:481,64'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:481,55'
          Dst:             strerror
        - Src:             'mod_xfer.c:480,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:487,23'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:490,11'
          Dst:             pr_display_file
        - Src:             'mod_xfer.c:492,54'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:492,45'
          Dst:             strerror
        - Src:             'mod_xfer.c:491,9'
          Dst:             pr_log_debug
    - functionName:    get_hidden_store_path
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1320
      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:1224,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1228,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1229,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1236,12'
          Dst:             strlen
        - Src:             'mod_xfer.c:1236,29'
          Dst:             strlen
        - Src:             'mod_xfer.c:1236,44'
          Dst:             strlen
        - Src:             'mod_xfer.c:1241,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1245,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1246,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1250,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1251,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1254,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1254,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1252,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1261,19'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1263,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1269,19'
          Dst:             pstrndup
        - Src:             'mod_xfer.c:1272,19'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1275,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1279,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:1280,7'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1283,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1286,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1288,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1292,7'
          Dst:             pr_table_set
        - Src:             'mod_xfer.c:1296,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1296,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1294,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1306,18'
          Dst:             pstrndup
        - Src:             'mod_xfer.c:1309,7'
          Dst:             pr_fs_is_nfs
        - Src:             'mod_xfer.c:1311,9'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1310,9'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1314,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1314,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1312,7'
          Dst:             pr_log_pri
    - functionName:    transmit_data
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 795
      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:737,7'
          Dst:             pr_inet_set_proto_cork
        - Src:             'mod_xfer.c:739,49'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:739,40'
          Dst:             strerror
        - Src:             'mod_xfer.c:738,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:743,9'
          Dst:             transmit_sendfile
        - Src:             'mod_xfer.c:752,11'
          Dst:             transmit_normal
        - Src:             'mod_xfer.c:753,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:762,60'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:762,51'
          Dst:             strerror
        - Src:             'mod_xfer.c:763,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:761,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:764,11'
          Dst:             transmit_normal
        - Src:             'mod_xfer.c:765,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:786,9'
          Dst:             pr_inet_set_proto_cork
        - Src:             'mod_xfer.c:787,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:789,53'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:789,44'
          Dst:             strerror
        - Src:             'mod_xfer.c:788,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:794,3'
          Dst:             __errno_location
    - functionName:    retr_complete
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 996
      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:994,3'
          Dst:             pr_fsio_close
    - functionName:    transmit_sendfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 720
      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:677,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:599,7'
          Dst:             pr_throttle_have_rate
        - Src:             'mod_xfer.c:607,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:610,18'
          Dst:             pr_throttle_have_rate
        - Src:             'mod_xfer.c:611,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:615,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:618,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:622,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:626,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:636,3'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:655,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:664,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:672,15'
          Dst:             pr_data_sendfile
        - Src:             'mod_xfer.c:675,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:682,13'
          Dst:             strerror
        - Src:             'mod_xfer.c:681,11'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:683,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:688,9'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:713,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:712,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:714,7'
          Dst:             __errno_location
    - functionName:    transmit_normal
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 584
      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:546,11'
          Dst:             pr_fsio_read_with_error
        - Src:             'mod_xfer.c:547,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:552,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:553,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:555,15'
          Dst:             pr_fsio_read_with_error
        - Src:             'mod_xfer.c:556,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:560,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:561,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:561,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:566,7'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:566,35'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:567,25'
          Dst:             strerror
        - Src:             'mod_xfer.c:564,12'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:570,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:570,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:571,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:575,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:583,10'
          Dst:             pr_data_xfer
    - functionName:    set_allowoverwrite
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3686
      functionLinenumberEnd: 3705
      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:3690,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3690,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3691,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3691,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3691,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3691,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3691,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3694,21'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3696,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3696,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3699,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3700,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3704,10'
          Dst:             mod_create_ret
    - functionName:    set_allowrestart
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3707
      functionLinenumberEnd: 3726
      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:3711,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3711,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3712,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3712,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3712,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3712,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3712,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3715,19'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3717,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3717,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3720,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3721,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3725,10'
          Dst:             mod_create_ret
    - functionName:    set_defaulttransfermode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3729
      functionLinenumberEnd: 3743
      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:3732,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3732,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3733,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3733,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3733,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3733,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3733,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3736,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3737,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3738,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3738,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3741,3'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:3742,10'
          Dst:             mod_create_ret
    - functionName:    set_deleteabortedstores
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3745
      functionLinenumberEnd: 3764
      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:3749,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3749,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3750,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3750,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3750,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3750,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3750,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3753,27'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3755,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3755,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3758,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3759,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3763,10'
          Dst:             mod_create_ret
    - functionName:    set_displayfiletransfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3767
      functionLinenumberEnd: 3773
      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:3768,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3768,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3769,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3769,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3769,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3769,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3769,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3771,10'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:3772,10'
          Dst:             mod_create_ret
    - functionName:    set_hiddenstores
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3775
      functionLinenumberEnd: 3846
      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:3780,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3780,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3781,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3781,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3781,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3781,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3781,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3783,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3792,14'
          Dst:             strlen
        - Src:             'mod_xfer.c:3797,15'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3813,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3818,20'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3821,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3825,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3828,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3832,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3837,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3840,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3845,10'
          Dst:             mod_create_ret
    - functionName:    set_maxfilesize
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3848
      functionLinenumberEnd: 3974
      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:3858,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3859,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3859,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3864,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3864,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3867,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3867,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3867,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3867,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3867,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3896,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3897,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3898,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3899,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3899,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3899,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3915,9'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_xfer.c:3916,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3916,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:3916,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3916,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3916,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3921,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3921,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3927,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3928,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3930,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3941,11'
          Dst:             pr_expr_create
        - Src:             'mod_xfer.c:3943,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3945,15'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3950,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3954,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3958,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3962,19'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3973,10'
          Dst:             mod_create_ret
    - functionName:    set_maxtransfersperhost
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3977
      functionLinenumberEnd: 4011
      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:3983,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3983,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3986,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3986,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3986,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3986,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3986,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3989,11'
          Dst:             atoi
        - Src:             'mod_xfer.c:3991,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3991,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3991,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3994,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3997,7'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:3998,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3998,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4001,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4005,18'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4010,10'
          Dst:             mod_create_ret
    - functionName:    set_maxtransfersperuser
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4014
      functionLinenumberEnd: 4049
      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:4020,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4020,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4023,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4023,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4023,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4023,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4023,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4026,11'
          Dst:             atoi
        - Src:             'mod_xfer.c:4028,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4028,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4028,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4032,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4035,7'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:4036,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4036,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4039,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4043,18'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4048,10'
          Dst:             mod_create_ret
    - functionName:    set_storeuniqueprefix
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4051
      functionLinenumberEnd: 4068
      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:4054,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4054,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4055,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4055,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4055,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4055,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4055,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4059,7'
          Dst:             strchr
        - Src:             'mod_xfer.c:4060,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4060,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4060,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4064,7'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:4067,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutnoxfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4070
      functionLinenumberEnd: 4088
      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:4074,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4074,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4075,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4075,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4075,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4075,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4075,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4077,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_xfer.c:4078,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4078,5'
          Dst:             strerror
        - Src:             'mod_xfer.c:4078,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4078,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4078,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4082,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4083,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4087,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutstalled
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4090
      functionLinenumberEnd: 4108
      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:4094,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4094,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4095,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4095,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4095,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4095,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4095,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4097,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_xfer.c:4098,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4098,5'
          Dst:             strerror
        - Src:             'mod_xfer.c:4098,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4098,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4098,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4102,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4103,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4107,10'
          Dst:             mod_create_ret
    - functionName:    set_transferoptions
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4111
      functionLinenumberEnd: 4142
      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:4117,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4117,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4120,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4120,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4120,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4120,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4120,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4122,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4125,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4128,16'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4129,16'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4133,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4133,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4133,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4138,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4141,10'
          Dst:             mod_create_ret
    - functionName:    set_transferrate
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4147
      functionLinenumberEnd: 4297
      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:4161,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4161,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4164,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4164,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4164,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4164,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4164,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4193,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4194,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4195,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4196,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4196,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4196,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4201,9'
          Dst:             strchr
        - Src:             'mod_xfer.c:4209,24'
          Dst:             strtod
        - Src:             'mod_xfer.c:4212,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4212,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4216,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4216,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4216,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4224,17'
          Dst:             strtoul
        - Src:             'mod_xfer.c:4226,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4226,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4226,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4233,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4236,9'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:4237,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4237,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4240,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4242,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4244,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4255,11'
          Dst:             pr_expr_create
        - Src:             'mod_xfer.c:4256,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4265,15'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4268,9'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:4269,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4269,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4275,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4277,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4279,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4282,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4286,19'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4296,10'
          Dst:             mod_create_ret
    - functionName:    set_usesendfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4300
      functionLinenumberEnd: 4372
      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:4306,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4306,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4306,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4306,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4306,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4312,19'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:4319,16'
          Dst:             strlen
        - Src:             'mod_xfer.c:4327,24'
          Dst:             strtof
        - Src:             'mod_xfer.c:4335,11'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4335,11'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4335,11'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4343,9'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4343,9'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4350,9'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_xfer.c:4351,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4351,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:4351,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4351,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4351,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4359,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4359,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4362,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4363,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4365,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4367,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4371,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: 499
      functionLinenumberEnd: 531
      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:504,10'
          Dst:             make_array
        - Src:             'mod_xfer.c:509,17'
          Dst:             get_cmd_from_list
        - Src:             'mod_xfer.c:512,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:513,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:514,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:515,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:516,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:517,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:521,37'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:521,17'
          Dst:             push_array
        - Src:             'mod_xfer.c:525,15'
          Dst:             push_array
    - functionName:    get_cmd_from_list
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 263
      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:227,20'
          Dst:             __ctype_b_loc
        - Src:             'mod_xfer.c:243,42'
          Dst:             __ctype_b_loc
    - functionName:    auth_scan_scoreboard
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2134
      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:2035,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2038,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2037,3'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2042,7'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_auth.c:2044,16'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2044,7'
          Dst:             strerror
        - Src:             'mod_auth.c:2043,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2047,19'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_auth.c:2048,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:2051,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2054,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2059,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2067,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2072,3'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_auth.c:2075,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2076,7'
          Dst:             palloc
        - Src:             'mod_auth.c:2079,7'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2080,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2082,59'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2082,50'
          Dst:             strerror
        - Src:             'mod_auth.c:2081,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2088,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2089,9'
          Dst:             palloc
        - Src:             'mod_auth.c:2092,9'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2093,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2095,61'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2095,52'
          Dst:             strerror
        - Src:             'mod_auth.c:2094,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2101,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2114,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2121,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2124,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2124,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2127,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2129,7'
          Dst:             pr_session_disconnect
    - functionName:    auth_init
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 198
      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:190,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:191,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:192,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:193,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:196,3'
          Dst:             set_auth_check
        - Src:             'mod_auth.c:196,3'
          Dst:             auth_cmd_chk_cb
    - functionName:    auth_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 349
      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:238,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_auth.c:205,3'
          Dst:             pr_event_register
        - Src:             'mod_auth.c:205,3'
          Dst:             auth_sess_reinit_ev
        - Src:             'mod_auth.c:209,7'
          Dst:             find_config
        - Src:             'mod_auth.c:214,12'
          Dst:             pr_auth_set_max_password_len
        - Src:             'mod_auth.c:218,7'
          Dst:             find_config
        - Src:             'mod_auth.c:225,5'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:226,5'
          Dst:             pr_timer_add
        - Src:             'mod_auth.c:226,5'
          Dst:             auth_login_timeout_cb
        - Src:             'mod_auth.c:233,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:234,11'
          Dst:             pr_open_scoreboard
        - Src:             'mod_auth.c:235,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:240,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:244,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:249,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:254,73'
          Dst:             __errno_location
        - Src:             'mod_auth.c:254,64'
          Dst:             strerror
        - Src:             'mod_auth.c:254,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:260,3'
          Dst:             pr_event_register
        - Src:             'mod_auth.c:260,3'
          Dst:             auth_exit_ev
        - Src:             'mod_auth.c:265,9'
          Dst:             find_config
        - Src:             'mod_auth.c:269,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:274,11'
          Dst:             find_config_next
        - Src:             'mod_auth.c:280,9'
          Dst:             pr_scoreboard_entry_get
        - Src:             'mod_auth.c:281,11'
          Dst:             pr_scoreboard_entry_add
        - Src:             'mod_auth.c:288,68'
          Dst:             __errno_location
        - Src:             'mod_auth.c:288,59'
          Dst:             strerror
        - Src:             'mod_auth.c:287,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:292,67'
          Dst:             __errno_location
        - Src:             'mod_auth.c:292,58'
          Dst:             strerror
        - Src:             'mod_auth.c:291,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:293,11'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:307,33'
          Dst:             time
        - Src:             'mod_auth.c:298,7'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:315,5'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:321,9'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:346,3'
          Dst:             auth_scan_scoreboard
    - functionName:    auth_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 183
      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:162,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth.c:162,3'
          Dst:             auth_exit_ev
        - Src:             'mod_auth.c:163,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth.c:163,3'
          Dst:             auth_sess_reinit_ev
        - Src:             'mod_auth.c:165,3'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:171,10'
          Dst:             pr_auth_set_max_password_len
        - Src:             'mod_auth.c:178,9'
          Dst:             auth_sess_init
        - Src:             'mod_auth.c:180,5'
          Dst:             pr_session_disconnect
    - functionName:    auth_login_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 130
      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:114,3'
          Dst:             pr_response_send_async
        - Src:             'mod_auth.c:123,3'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:124,3'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:126,3'
          Dst:             pr_session_disconnect
    - functionName:    auth_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 155
      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:151,3'
          Dst:             pr_auth_cache_clear
        - Src:             'mod_auth.c:154,10'
          Dst:             pr_close_scoreboard
    - functionName:    auth_cmd_chk_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - get_param_ptr
        - pr_response_add_err
        - pr_table_add
        - pr_table_get
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:80,13'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:92,25'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:96,9'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:97,13'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:100,73'
          Dst:             __errno_location
        - Src:             'mod_auth.c:100,64'
          Dst:             strerror
        - Src:             'mod_auth.c:99,11'
          Dst:             pr_trace_msg
    - functionName:    auth_pre_user
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2465
      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:2430,9'
          Dst:             pr_trace_get_level
        - Src:             'mod_auth.c:2434,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'mod_auth.c:2437,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:2450,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth.c:2451,3'
          Dst:             pr_auth_endgrent
        - Src:             'mod_auth.c:2454,7'
          Dst:             strlen
        - Src:             'mod_auth.c:2455,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2457,5'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2459,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_auth.c:2460,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2461,12'
          Dst:             mod_create_ret
    - functionName:    auth_user
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2467
      functionLinenumberEnd: 2556
      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:2474,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2482,16'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2484,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2485,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2486,14'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2489,5'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2490,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2495,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2496,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2498,7'
          Dst:             pr_table_add_dup
        - Src:             'mod_auth.c:2500,37'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2500,28'
          Dst:             strerror
        - Src:             'mod_auth.c:2499,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2504,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2507,27'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2522,5'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2525,14'
          Dst:             pr_auth_requires_pass
        - Src:             'mod_auth.c:2531,24'
          Dst:             pr_cmd_alloc
        - Src:             'mod_auth.c:2537,24'
          Dst:             pstrdup
        - Src:             'mod_auth.c:2541,9'
          Dst:             add_config_param_set
        - Src:             'mod_auth.c:2542,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:2546,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2548,5'
          Dst:             pr_cmd_dispatch
        - Src:             'mod_auth.c:2551,5'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2555,10'
          Dst:             mod_create_ret
    - functionName:    auth_pre_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2559
      functionLinenumberEnd: 2681
      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:2563,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth.c:2564,3'
          Dst:             pr_auth_endgrent
        - Src:             'mod_auth.c:2567,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2571,9'
          Dst:             find_config
        - Src:             'mod_auth.c:2580,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:2581,21'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2584,13'
          Dst:             find_config
        - Src:             'mod_auth.c:2598,17'
          Dst:             pr_session_get_protocol
        - Src:             'mod_auth.c:2599,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:2605,26'
          Dst:             strlen
        - Src:             'mod_auth.c:2619,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2620,13'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2631,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2634,11'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2637,11'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2638,11'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2639,18'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2651,18'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2656,23'
          Dst:             pr_fsio_open
        - Src:             'mod_auth.c:2659,32'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2659,23'
          Dst:             strerror
        - Src:             'mod_auth.c:2658,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2662,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth.c:2664,34'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2664,25'
          Dst:             strerror
        - Src:             'mod_auth.c:2663,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2665,9'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:2670,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2672,36'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2672,27'
          Dst:             strerror
        - Src:             'mod_auth.c:2671,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2673,11'
          Dst:             pr_fsio_close
    - functionName:    auth_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2683
      functionLinenumberEnd: 2790
      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:2688,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2691,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2693,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2694,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2696,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2703,9'
          Dst:             setup_env
        - Src:             'mod_auth.c:2707,9'
          Dst:             add_config_param_set
        - Src:             'mod_auth.c:2708,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:2711,5'
          Dst:             set_auth_check
        - Src:             'mod_auth.c:2713,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2717,11'
          Dst:             pr_fs_decode_path
        - Src:             'mod_auth.c:2716,11'
          Dst:             pr_table_add_dup
        - Src:             'mod_auth.c:2720,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2720,11'
          Dst:             strerror
        - Src:             'mod_auth.c:2718,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2726,9'
          Dst:             pr_trace_get_level
        - Src:             'mod_auth.c:2730,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'mod_auth.c:2733,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:2738,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2741,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2748,20'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2752,11'
          Dst:             strstr
        - Src:             'mod_auth.c:2753,19'
          Dst:             sreplace
        - Src:             'mod_auth.c:2757,11'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2768,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2771,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2774,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2778,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2786,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2789,10'
          Dst:             mod_create_ret
    - functionName:    auth_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         164
      ICount:          917
      EdgeCount:       219
      CyclomaticComplexity: 57
      functionsReached:
        - __errno_location
        - auth_count_scoreboard
        - auth_session_timeout_cb
        - build_dyn_config2
        - 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:529,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:532,3'
          Dst:             pr_auth_clear_auth_only_modules
        - Src:             'mod_auth.c:541,9'
          Dst:             find_config
        - Src:             'mod_auth.c:550,18'
          Dst:             pr_session_get_protocol
        - Src:             'mod_auth.c:557,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:566,17'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:574,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:575,11'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:576,11'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:583,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:589,3'
          Dst:             auth_count_scoreboard
        - Src:             'mod_auth.c:595,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth.c:596,5'
          Dst:             build_dyn_config2
        - Src:             'mod_auth.c:602,7'
          Dst:             find_config
        - Src:             'mod_auth.c:604,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:607,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:608,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'mod_auth.c:622,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:623,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:637,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:639,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:667,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:680,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:684,5'
          Dst:             pr_timer_add
        - Src:             'mod_auth.c:684,5'
          Dst:             auth_session_timeout_cb
        - Src:             'mod_auth.c:691,11'
          Dst:             pr_display_fh
        - Src:             'mod_auth.c:693,46'
          Dst:             __errno_location
        - Src:             'mod_auth.c:693,37'
          Dst:             strerror
        - Src:             'mod_auth.c:692,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:696,7'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:706,7'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:709,22'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:711,13'
          Dst:             pr_display_file
        - Src:             'mod_auth.c:713,36'
          Dst:             __errno_location
        - Src:             'mod_auth.c:713,27'
          Dst:             strerror
        - Src:             'mod_auth.c:712,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:721,20'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:723,11'
          Dst:             pr_display_file
        - Src:             'mod_auth.c:725,34'
          Dst:             __errno_location
        - Src:             'mod_auth.c:725,25'
          Dst:             strerror
        - Src:             'mod_auth.c:724,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:730,14'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:734,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:738,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:743,17'
          Dst:             sreplace
        - Src:             'mod_auth.c:744,6'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:747,3'
          Dst:             login_succeeded
        - Src:             'mod_auth.c:750,7'
          Dst:             find_config
        - Src:             'mod_auth.c:756,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:763,9'
          Dst:             find_config
        - Src:             'mod_auth.c:766,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:772,5'
          Dst:             pr_signals_block
        - Src:             'mod_auth.c:773,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:774,5'
          Dst:             pr_privs_revoke
        - Src:             'mod_auth.c:775,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_auth.c:780,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:783,7'
          Dst:             find_config
    - functionName:    auth_log_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 479
      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:466,3'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:475,18'
          Dst:             strlen
        - Src:             'mod_auth.c:476,5'
          Dst:             pr_memscrub
    - functionName:    auth_err_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 458
      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:421,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:430,12'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:432,7'
          Dst:             login_failed
        - Src:             'mod_auth.c:435,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:448,3'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:454,5'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:458,10'
          Dst:             mod_create_ret
    - functionName:    auth_acct
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2792
      functionLinenumberEnd: 2794
      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_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2793,3'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2794,10'
          Dst:             mod_create_ret
    - functionName:    auth_rein
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2797
      functionLinenumberEnd: 2799
      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_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2798,3'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2799,10'
          Dst:             mod_create_ret
    - functionName:    auth_pre_retr
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2916
      functionLinenumberEnd: 3004
      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:2932,10'
          Dst:             dir_canonical_path
        - Src:             'mod_auth.c:2933,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2941,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2947,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:2948,7'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:2952,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2957,13'
          Dst:             pr_get_fs
        - Src:             'mod_auth.c:2961,17'
          Dst:             pr_register_fs
        - Src:             'mod_auth.c:2964,37'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2964,28'
          Dst:             strerror
        - Src:             'mod_auth.c:2963,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2999,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    auth_post_retr
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3006
      functionLinenumberEnd: 3024
      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:3014,11'
          Dst:             pr_unregister_fs
        - Src:             'mod_auth.c:3017,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3017,9'
          Dst:             strerror
        - Src:             'mod_auth.c:3016,7'
          Dst:             pr_log_debug
    - functionName:    robots_fsio_stat
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2809
      functionLinenumberEnd: 2823
      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: 2826
      functionLinenumberEnd: 2833
      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:2828,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2832,10'
          Dst:             robots_fsio_stat
    - functionName:    robots_fsio_lstat
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2835
      functionLinenumberEnd: 2836
      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:2836,10'
          Dst:             robots_fsio_stat
    - functionName:    robots_fsio_unlink
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2839
      functionLinenumberEnd: 2840
      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: 2843
      functionLinenumberEnd: 2850
      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:2845,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_close
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2852
      functionLinenumberEnd: 2859
      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:2854,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_read
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2861
      functionLinenumberEnd: 2878
      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:2865,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2872,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_write
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2881
      functionLinenumberEnd: 2888
      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:2883,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_access
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2891
      functionLinenumberEnd: 2898
      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:2893,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_faccess
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2901
      functionLinenumberEnd: 2914
      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:2904,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2909,5'
          Dst:             __errno_location
    - functionName:    login_failed
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 416
      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:398,10'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'mod_auth.c:399,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:401,3'
          Dst:             pr_trace_msg
    - functionName:    auth_count_scoreboard
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2161
      functionLinenumberEnd: 2425
      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:2172,7'
          Dst:             have_client_limits
        - Src:             'mod_auth.c:2179,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2186,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2185,5'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2189,9'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_auth.c:2191,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2191,9'
          Dst:             strerror
        - Src:             'mod_auth.c:2190,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2194,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_auth.c:2197,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:2200,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2204,14'
          Dst:             strcmp
        - Src:             'mod_auth.c:2208,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2217,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2216,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2223,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2234,13'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2239,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_auth.c:2240,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:2244,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2245,7'
          Dst:             palloc
        - Src:             'mod_auth.c:2248,7'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2249,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2251,59'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2251,50'
          Dst:             strerror
        - Src:             'mod_auth.c:2250,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2257,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2258,9'
          Dst:             palloc
        - Src:             'mod_auth.c:2261,9'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2262,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2264,61'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2264,52'
          Dst:             strerror
        - Src:             'mod_auth.c:2263,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2274,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2281,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2282,14'
          Dst:             find_config_next
        - Src:             'mod_auth.c:2295,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2298,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2299,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2299,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2301,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2303,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2306,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2313,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2327,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2329,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2330,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2330,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2332,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2334,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2336,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2342,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2356,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2358,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2359,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2359,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2361,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2363,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2365,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2370,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2384,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2386,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2387,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2387,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2389,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2391,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2392,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2397,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2410,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2412,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2413,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2413,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2415,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2417,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2419,7'
          Dst:             pr_session_disconnect
    - functionName:    auth_session_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 144
      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:134,3'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:135,3'
          Dst:             pr_response_send_async
        - Src:             'mod_auth.c:139,3'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:140,3'
          Dst:             pr_session_disconnect
    - functionName:    login_succeeded
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 515
      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:489,10'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'mod_auth.c:490,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:492,3'
          Dst:             pr_trace_msg
    - functionName:    have_client_limits
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2137
      functionLinenumberEnd: 2159
      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:2138,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2142,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2146,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2150,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2154,7'
          Dst:             find_config
    - functionName:    setup_env
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 2020
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         403
      ICount:          2304
      EdgeCount:       538
      CyclomaticComplexity: 137
      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_clean_path2
        - 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:1304,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_auth.c:1069,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:1071,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1082,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1083,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1080,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1087,8'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:1094,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1097,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:1106,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1107,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1103,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1108,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1116,8'
          Dst:             passwd_dup
        - Src:             'mod_auth.c:1121,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1126,23'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1129,27'
          Dst:             strlen
        - Src:             'mod_auth.c:1129,9'
          Dst:             pr_memscrub
        - Src:             'mod_auth.c:1132,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1137,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1138,26'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1139,30'
          Dst:             pr_auth_gid2name
        - Src:             'mod_auth.c:1139,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1146,25'
          Dst:             path_subst_uservar
        - Src:             'mod_auth.c:1156,7'
          Dst:             strcmp
        - Src:             'mod_auth.c:1157,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1172,12'
          Dst:             pr_auth_getgroups
        - Src:             'mod_auth.c:1178,8'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1182,23'
          Dst:             make_array
        - Src:             'mod_auth.c:1183,25'
          Dst:             make_array
        - Src:             'mod_auth.c:1185,20'
          Dst:             push_array
        - Src:             'mod_auth.c:1186,50'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1186,20'
          Dst:             push_array
        - Src:             'mod_auth.c:1190,10'
          Dst:             find_config
        - Src:             'mod_auth.c:1197,10'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1200,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1202,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1209,12'
          Dst:             find_config
        - Src:             'mod_auth.c:1221,18'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth.c:1226,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth.c:1227,11'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1230,11'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1237,10'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1238,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1246,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1252,27'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1264,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:1267,26'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1275,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1286,19'
          Dst:             do_auth
        - Src:             'mod_auth.c:1293,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1296,25'
          Dst:             strlen
        - Src:             'mod_auth.c:1296,7'
          Dst:             pr_memscrub
        - Src:             'mod_auth.c:1300,7'
          Dst:             pr_log_debug
        - 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:1354,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1360,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1366,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1380,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1387,3'
          Dst:             pr_auth_setgrent
        - Src:             'mod_auth.c:1389,9'
          Dst:             pr_auth_is_valid_shell
        - Src:             'mod_auth.c:1392,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1397,9'
          Dst:             pr_auth_banned_by_ftpusers
        - Src:             'mod_auth.c:1400,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1412,9'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:1413,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1421,5'
          Dst:             pr_signals_block
        - Src:             'mod_auth.c:1423,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1424,11'
          Dst:             set_groups
        - Src:             'mod_auth.c:1426,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1428,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1428,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1427,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1442,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1443,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1443,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1443,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1446,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1447,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1447,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1447,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1452,5'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1456,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:1461,7'
          Dst:             pr_fs_clean_path2
        - Src:             'mod_auth.c:1463,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:1464,9'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1468,20'
          Dst:             pdircat
        - Src:             'mod_auth.c:1481,15'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:1499,26'
          Dst:             strlen
        - Src:             'mod_auth.c:1505,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:1506,15'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:1508,24'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1511,26'
          Dst:             strerror
        - Src:             'mod_auth.c:1510,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1513,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1518,13'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1521,13'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1528,31'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1536,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1536,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1535,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1540,29'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1543,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1543,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1542,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1548,9'
          Dst:             pr_fsio_access
        - Src:             'mod_auth.c:1553,29'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1556,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1559,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1560,11'
          Dst:             set_groups
        - Src:             'mod_auth.c:1562,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1564,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1564,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1563,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1578,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1579,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1579,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1579,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1582,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1583,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1583,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1583,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1588,5'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1590,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_auth.c:1609,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1612,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1616,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1618,7'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:1622,5'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1623,15'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1626,13'
          Dst:             pr_auth_getgrnam
        - Src:             'mod_auth.c:1629,25'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1637,5'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:1638,15'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1639,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:1642,7'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1645,7'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1652,9'
          Dst:             create_home
        - Src:             'mod_auth.c:1660,14'
          Dst:             get_default_chdir
        - Src:             'mod_auth.c:1662,5'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1669,8'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1671,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1677,3'
          Dst:             resolve_deferred_dirs
        - Src:             'mod_auth.c:1678,3'
          Dst:             fixup_dirs
        - Src:             'mod_auth.c:1685,5'
          Dst:             resolve_anonymous_dirs
        - Src:             'mod_auth.c:1694,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:1700,16'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1704,16'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1733,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1737,5'
          Dst:             log_wtmp
        - Src:             'mod_auth.c:1751,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1755,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1763,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:1764,5'
          Dst:             xferlog_open
        - Src:             'mod_auth.c:1767,5'
          Dst:             xferlog_open
        - Src:             'mod_auth.c:1770,9'
          Dst:             set_groups
        - Src:             'mod_auth.c:1772,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1774,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1774,9'
          Dst:             strerror
        - Src:             'mod_auth.c:1773,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1778,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:1782,9'
          Dst:             get_default_root
        - Src:             'mod_auth.c:1783,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1785,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1786,7'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1789,5'
          Dst:             ensure_open_passwd
        - Src:             'mod_auth.c:1792,11'
          Dst:             pr_auth_chroot
        - Src:             'mod_auth.c:1793,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1794,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1795,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1802,41'
          Dst:             strlen
        - Src:             'mod_auth.c:1802,11'
          Dst:             strncmp
        - Src:             'mod_auth.c:1803,37'
          Dst:             strlen
        - Src:             'mod_auth.c:1809,9'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1815,5'
          Dst:             ensure_open_passwd
        - Src:             'mod_auth.c:1819,7'
          Dst:             pr_auth_chroot
        - Src:             'mod_auth.c:1820,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1821,5'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1822,5'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1829,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1841,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1842,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1842,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1842,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1845,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1846,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1846,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1846,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1851,3'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1867,7'
          Dst:             strncmp
        - Src:             'mod_auth.c:1868,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1870,5'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1871,5'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1875,36'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1894,7'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1903,47'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1903,38'
          Dst:             strerror
        - Src:             'mod_auth.c:1902,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1906,11'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1908,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1908,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1907,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1909,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1910,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1919,47'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1919,38'
          Dst:             strerror
        - Src:             'mod_auth.c:1918,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1921,11'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1923,33'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1923,24'
          Dst:             strerror
        - Src:             'mod_auth.c:1922,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1924,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1925,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1934,31'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1934,22'
          Dst:             strerror
        - Src:             'mod_auth.c:1933,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1935,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1936,7'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1940,25'
          Dst:             pr_fs_getcwd
        - Src:             'mod_auth.c:1940,3'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1941,25'
          Dst:             pr_fs_getvwd
        - Src:             'mod_auth.c:1941,3'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1944,3'
          Dst:             dir_check_full
        - Src:             'mod_auth.c:1948,29'
          Dst:             pstrcat
        - Src:             'mod_auth.c:1952,29'
          Dst:             pstrcat
        - Src:             'mod_auth.c:1959,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1975,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:1980,3'
          Dst:             pr_session_set_idle
        - Src:             'mod_auth.c:1982,3'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:1988,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1991,28'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1995,21'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1999,20'
          Dst:             copy_array
        - Src:             'mod_auth.c:2005,20'
          Dst:             copy_array_str
        - Src:             'mod_auth.c:2008,3'
          Dst:             pr_resolve_fs_map
        - Src:             'mod_auth.c:2014,23'
          Dst:             strlen
        - Src:             'mod_auth.c:2014,5'
          Dst:             pr_memscrub
    - functionName:    passwd_dup
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1029
      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:1019,9'
          Dst:             pcalloc
        - Src:             'mod_auth.c:1021,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1022,20'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1025,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1026,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1027,19'
          Dst:             pstrdup
    - functionName:    do_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 387
      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:358,9'
          Dst:             find_config
        - Src:             'mod_auth.c:360,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:362,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:367,11'
          Dst:             find_config_next
        - Src:             'mod_auth.c:372,9'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:373,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:376,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:379,7'
          Dst:             __errno_location
        - Src:             'mod_auth.c:383,12'
          Dst:             pr_auth_check
        - Src:             'mod_auth.c:386,10'
          Dst:             pr_auth_authenticate
    - functionName:    get_default_chdir
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 829
      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:796,7'
          Dst:             find_config
        - Src:             'mod_auth.c:800,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:808,11'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:814,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:821,11'
          Dst:             pdircat
        - Src:             'mod_auth.c:826,11'
          Dst:             path_subst_uservar
    - functionName:    get_default_root
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 1014
      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:897,7'
          Dst:             find_config
        - Src:             'mod_auth.c:899,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:907,11'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:913,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:920,15'
          Dst:             path_subst_uservar
        - Src:             'mod_auth.c:925,9'
          Dst:             strncmp
        - Src:             'mod_auth.c:941,16'
          Dst:             pstrdup
        - Src:             'mod_auth.c:944,17'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:958,19'
          Dst:             strlen
        - Src:             'mod_auth.c:964,9'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:965,15'
          Dst:             is_symlink_path
        - Src:             'mod_auth.c:966,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:967,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:971,13'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:975,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:986,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:988,7'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:989,17'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:990,16'
          Dst:             __errno_location
        - Src:             'mod_auth.c:991,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:1001,16'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:1005,28'
          Dst:             strerror
        - Src:             'mod_auth.c:1003,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1007,9'
          Dst:             __errno_location
    - functionName:    ensure_open_passwd
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1032
      functionLinenumberEnd: 1050
      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:1034,3'
          Dst:             pr_auth_setpwent
        - Src:             'mod_auth.c:1035,3'
          Dst:             pr_auth_setgrent
        - Src:             'mod_auth.c:1040,3'
          Dst:             pr_auth_getpwent
        - Src:             'mod_auth.c:1041,3'
          Dst:             pr_auth_getgrent
        - Src:             'mod_auth.c:1048,3'
          Dst:             pr_auth_setpwent
        - Src:             'mod_auth.c:1049,3'
          Dst:             pr_auth_setgrent
    - functionName:    is_symlink_path
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 889
      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:841,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:842,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:843,12'
          Dst:             __errno_location
        - Src:             'mod_auth.c:847,7'
          Dst:             strerror
        - Src:             'mod_auth.c:846,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:849,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:854,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:863,9'
          Dst:             strrchr
        - Src:             'mod_auth.c:868,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:877,16'
          Dst:             pstrndup
        - Src:             'mod_auth.c:879,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:882,11'
          Dst:             is_symlink_path
    - functionName:    set_accessdenymsg
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3029
      functionLinenumberEnd: 3039
      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:3032,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3032,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3033,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3033,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3033,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3033,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3033,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3035,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3038,10'
          Dst:             mod_create_ret
    - functionName:    set_accessgrantmsg
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3041
      functionLinenumberEnd: 3051
      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:3044,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3044,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3045,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3045,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3045,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3045,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3045,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3047,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3050,10'
          Dst:             mod_create_ret
    - functionName:    set_allowchrootsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3054
      functionLinenumberEnd: 3071
      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:3058,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3058,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3059,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3059,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3059,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3059,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3059,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3061,27'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3063,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3063,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3066,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3067,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3070,10'
          Dst:             mod_create_ret
    - functionName:    set_allowemptypasswords
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3074
      functionLinenumberEnd: 3092
      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:3078,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3078,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3079,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3079,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3079,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3079,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3079,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3081,27'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3083,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3083,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3086,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3087,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3091,10'
          Dst:             mod_create_ret
    - functionName:    set_anonallowrobots
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3095
      functionLinenumberEnd: 3112
      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:3099,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3099,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3100,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3100,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3100,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3100,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3100,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3102,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3104,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3104,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3107,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3108,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3111,10'
          Dst:             mod_create_ret
    - functionName:    set_anonrequirepassword
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3114
      functionLinenumberEnd: 3131
      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:3118,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3118,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3119,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3119,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3119,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3119,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3119,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3121,25'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3123,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3123,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3126,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3127,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3130,10'
          Dst:             mod_create_ret
    - functionName:    set_anonrejectpasswords
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3134
      functionLinenumberEnd: 3199
      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:3143,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3143,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3146,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3146,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3146,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3146,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3146,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3156,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_auth.c:3158,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3158,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3158,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3163,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3163,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3163,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3170,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth.c:3178,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth.c:3182,5'
          Dst:             pr_regexp_error
        - Src:             'mod_auth.c:3183,5'
          Dst:             pr_regexp_free
        - Src:             'mod_auth.c:3185,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3185,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3185,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3189,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3190,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3192,10'
          Dst:             mod_create_ret
    - functionName:    set_authaliasonly
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3201
      functionLinenumberEnd: 3219
      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:3205,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3205,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3206,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3206,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3206,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3206,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3206,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3208,21'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3210,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3210,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3213,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3214,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3218,10'
          Dst:             mod_create_ret
    - functionName:    set_authusingalias
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3221
      functionLinenumberEnd: 3238
      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:3225,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3225,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3226,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3226,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3226,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3226,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3226,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3228,22'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3230,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3230,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3233,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3234,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3237,10'
          Dst:             mod_create_ret
    - functionName:    set_createhome
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3240
      functionLinenumberEnd: 3429
      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:3250,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3250,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3253,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3253,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3253,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3253,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3253,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3255,17'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3257,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3257,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3262,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3263,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3266,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3271,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3272,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3275,12'
          Dst:             strtol
        - Src:             'mod_auth.c:3278,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3278,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3278,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3290,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3300,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3300,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3300,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3304,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth.c:3305,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3305,11'
          Dst:             strerror
        - Src:             'mod_auth.c:3305,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3305,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3305,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3310,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3310,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3310,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3316,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3316,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3316,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3323,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3326,19'
          Dst:             strtol
        - Src:             'mod_auth.c:3329,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3329,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3329,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3336,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3339,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:3342,15'
          Dst:             pr_str2uid
        - Src:             'mod_auth.c:3343,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3343,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3343,13'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3357,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3360,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:3363,15'
          Dst:             pr_str2gid
        - Src:             'mod_auth.c:3364,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3364,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3364,13'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3378,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3382,15'
          Dst:             strtol
        - Src:             'mod_auth.c:3385,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3385,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3385,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3394,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3399,9'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3399,9'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3399,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3405,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3408,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3410,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3412,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3416,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3419,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3421,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3423,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3425,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3428,10'
          Dst:             mod_create_ret
    - functionName:    add_defaultchdir
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3484
      functionLinenumberEnd: 3530
      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:3491,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3491,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3491,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3491,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3491,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3494,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3494,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3502,7'
          Dst:             strchr
        - Src:             'mod_auth.c:3503,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3503,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3503,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3507,15'
          Dst:             strlen
        - Src:             'mod_auth.c:3508,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3511,9'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:3512,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3515,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3517,13'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3521,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3529,10'
          Dst:             mod_create_ret
    - functionName:    add_defaultroot
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3431
      functionLinenumberEnd: 3482
      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:3438,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3438,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3438,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3438,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3438,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3441,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3441,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3452,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3452,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3452,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3456,7'
          Dst:             strchr
        - Src:             'mod_auth.c:3457,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3457,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3457,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3461,15'
          Dst:             strlen
        - Src:             'mod_auth.c:3462,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3465,9'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:3466,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3469,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3471,13'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3475,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3481,10'
          Dst:             mod_create_ret
    - functionName:    set_displaylogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3532
      functionLinenumberEnd: 3542
      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:3535,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3535,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3536,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3536,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3536,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3536,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3536,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3538,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3541,10'
          Dst:             mod_create_ret
    - functionName:    set_maxclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3582
      functionLinenumberEnd: 3621
      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:3588,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3588,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3591,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3591,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3591,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3591,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3591,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3593,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3599,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3602,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3602,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3607,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3608,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3610,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3613,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3614,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3620,10'
          Dst:             mod_create_ret
    - functionName:    set_maxclientsclass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3545
      functionLinenumberEnd: 3579
      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:3549,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3549,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3549,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3549,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3549,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3551,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3557,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3560,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3560,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3565,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3566,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3567,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3569,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3572,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3573,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3574,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3578,10'
          Dst:             mod_create_ret
    - functionName:    set_maxhostclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3624
      functionLinenumberEnd: 3663
      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:3630,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3630,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3633,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3633,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3633,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3633,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3633,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3635,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3641,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3644,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3644,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3649,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3650,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3652,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3655,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3656,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3662,10'
          Dst:             mod_create_ret
    - functionName:    set_maxuserclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3667
      functionLinenumberEnd: 3706
      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:3673,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3673,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3676,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3676,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3676,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3676,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3676,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3678,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3684,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3687,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3687,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3692,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3693,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3695,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3698,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3699,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3705,10'
          Dst:             mod_create_ret
    - functionName:    set_maxconnectsperhost
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3709
      functionLinenumberEnd: 3745
      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:3715,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3715,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3718,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3718,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3718,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3718,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3718,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3720,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3726,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3729,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3729,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3734,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3735,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3738,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3741,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3744,10'
          Dst:             mod_create_ret
    - functionName:    set_maxhostsperuser
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3748
      functionLinenumberEnd: 3787
      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:3752,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3752,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3752,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3752,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3752,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3756,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3756,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3759,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3765,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3768,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3768,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3773,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3774,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3776,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3779,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3780,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3786,10'
          Dst:             mod_create_ret
    - functionName:    set_maxloginattempts
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3789
      functionLinenumberEnd: 3813
      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:3793,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3793,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3794,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3794,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3794,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3794,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3794,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3796,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3801,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3804,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3804,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3808,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3809,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3812,10'
          Dst:             mod_create_ret
    - functionName:    set_maxpasswordsize
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3816
      functionLinenumberEnd: 3857
      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:3821,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3821,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3822,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3822,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3822,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3822,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3822,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3826,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3826,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3829,18'
          Dst:             strtoul
        - Src:             'mod_auth.c:3831,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3831,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3852,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3853,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3856,10'
          Dst:             mod_create_ret
    - functionName:    set_requirevalidshell
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3859
      functionLinenumberEnd: 3877
      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:3863,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3863,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3864,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3864,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3864,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3864,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3864,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3866,25'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3868,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3868,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3871,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3872,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3876,10'
          Dst:             mod_create_ret
    - functionName:    set_rewritehome
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3880
      functionLinenumberEnd: 3897
      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:3884,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3884,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3885,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3885,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3885,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3885,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3885,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3887,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3889,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3889,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3892,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3893,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3896,10'
          Dst:             mod_create_ret
    - functionName:    set_rootlogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3899
      functionLinenumberEnd: 3917
      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:3903,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3903,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3904,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3904,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3904,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3904,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3904,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3906,22'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3908,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3908,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3911,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3912,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3916,10'
          Dst:             mod_create_ret
    - functionName:    set_rootrevoke
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3920
      functionLinenumberEnd: 3946
      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:3924,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3924,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3925,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3925,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3925,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3925,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3925,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3930,17'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3932,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3933,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3934,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3934,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3940,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3941,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3945,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutlogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3948
      functionLinenumberEnd: 3965
      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:3952,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3952,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3953,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3953,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3953,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3953,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3953,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3955,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_auth.c:3956,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3956,5'
          Dst:             strerror
        - Src:             'mod_auth.c:3956,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3956,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3956,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3960,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3961,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3964,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutsession
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3967
      functionLinenumberEnd: 4077
      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:3978,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3978,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3981,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3981,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3981,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3981,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3981,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3998,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_auth.c:3999,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3999,5'
          Dst:             strerror
        - Src:             'mod_auth.c:3999,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3999,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3999,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4005,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4009,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4010,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4011,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4012,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4012,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4012,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4018,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4019,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4021,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4032,11'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:4034,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4041,15'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4049,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4053,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4057,15'
          Dst:             pstrdup
        - Src:             'mod_auth.c:4062,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:4072,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4072,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4076,10'
          Dst:             mod_create_ret
    - functionName:    set_useftpusers
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4079
      functionLinenumberEnd: 4097
      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:4083,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4083,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4084,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4084,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4084,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4084,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4084,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4086,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4088,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4088,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4091,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4092,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4096,10'
          Dst:             mod_create_ret
    - functionName:    set_uselastlog
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4100
      functionLinenumberEnd: 4119
      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:4119,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4119,3'
          Dst:             mod_create_ret
    - functionName:    set_useralias
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4124
      functionLinenumberEnd: 4140
      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:4127,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4127,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4128,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4128,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4128,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4128,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4128,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4134,7'
          Dst:             strcmp
        - Src:             'mod_auth.c:4135,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4135,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4138,3'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:4139,10'
          Dst:             mod_create_ret
    - functionName:    set_userdirroot
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4142
      functionLinenumberEnd: 4159
      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:4146,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4146,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4147,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4147,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4147,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4147,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4147,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4149,19'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4151,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4151,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4154,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4155,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4158,10'
          Dst:             mod_create_ret
    - functionName:    set_userpassword
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4161
      functionLinenumberEnd: 4171
      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:4164,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4164,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4165,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4165,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4165,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4165,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4165,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4167,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:4170,10'
          Dst:             mod_create_ret
    - functionName:    set_wtmplog
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4174
      functionLinenumberEnd: 4197
      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:4178,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4178,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4179,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4179,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4179,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4179,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4179,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4181,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4185,16'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4187,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4187,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4191,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4192,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4196,10'
          Dst:             mod_create_ret
    - functionName:    delay_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2101
      functionLinenumberEnd: 2124
      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:2106,3'
          Dst:             pr_event_unregister
        - Src:             'mod_delay.c:2106,3'
          Dst:             delay_sess_reinit_ev
        - Src:             'mod_delay.c:2112,5'
          Dst:             close
        - Src:             'mod_delay.c:2119,9'
          Dst:             delay_sess_init
        - Src:             'mod_delay.c:2121,5'
          Dst:             pr_session_disconnect
    - functionName:    delay_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2241
      functionLinenumberEnd: 2353
      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:2277,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_delay.c:2246,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2246,3'
          Dst:             delay_sess_reinit_ev
        - Src:             'mod_delay.c:2256,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2266,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2271,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:2300,9'
          Dst:             find_config_next
        - Src:             'mod_delay.c:2309,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:2318,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2320,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:2321,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:2322,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2323,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:2328,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2326,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2330,26'
          Dst:             strerror
        - Src:             'mod_delay.c:2329,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2336,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'mod_delay.c:2339,27'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2339,18'
          Dst:             strerror
        - Src:             'mod_delay.c:2337,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:2343,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:2346,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2346,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2344,5'
          Dst:             pr_log_pri
    - functionName:    delay_init
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2205
      functionLinenumberEnd: 2238
      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:2210,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2210,3'
          Dst:             delay_connect_ev
        - Src:             'mod_delay.c:2215,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2215,3'
          Dst:             delay_postparse_ev
        - Src:             'mod_delay.c:2216,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2216,3'
          Dst:             delay_restart_ev
        - Src:             'mod_delay.c:2217,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2217,3'
          Dst:             delay_shutdown_ev
        - Src:             'mod_delay.c:2219,16'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:2220,3'
          Dst:             pr_pool_tag
        - Src:             'mod_delay.c:2223,7'
          Dst:             pr_ctrls_register
        - Src:             'mod_delay.c:2223,7'
          Dst:             delay_handle_delay
        - Src:             'mod_delay.c:2226,59'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2226,50'
          Dst:             strerror
        - Src:             'mod_delay.c:2225,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2232,33'
          Dst:             pcalloc
        - Src:             'mod_delay.c:2233,7'
          Dst:             pr_ctrls_init_acl
    - functionName:    delay_connect_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2027
      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:2006,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2011,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:2022,9'
          Dst:             find_config_next
        - Src:             'mod_delay.c:2025,10'
          Dst:             delay_inject_delay_with_jitter
    - functionName:    delay_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2044
      functionLinenumberEnd: 2074
      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:2047,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2057,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2072,12'
          Dst:             delay_table_init
    - functionName:    delay_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2076
      functionLinenumberEnd: 2099
      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:2087,5'
          Dst:             destroy_pool
        - Src:             'mod_delay.c:2090,16'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:2091,3'
          Dst:             pr_pool_tag
        - Src:             'mod_delay.c:2095,31'
          Dst:             pcalloc
        - Src:             'mod_delay.c:2096,5'
          Dst:             pr_ctrls_init_acl
    - functionName:    delay_shutdown_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2126
      functionLinenumberEnd: 2200
      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:2141,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:2142,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:2143,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2144,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:2149,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2147,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2150,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2157,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:2158,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2159,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:2163,43'
          Dst:             strerror
        - Src:             'mod_delay.c:2161,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2166,43'
          Dst:             strerror
        - Src:             'mod_delay.c:2164,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2168,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2173,10'
          Dst:             palloc
        - Src:             'mod_delay.c:2179,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:2182,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2182,26'
          Dst:             strerror
        - Src:             'mod_delay.c:2180,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2187,9'
          Dst:             pr_fsio_write
        - Src:             'mod_delay.c:2190,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2190,9'
          Dst:             strerror
        - Src:             'mod_delay.c:2188,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2195,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:2198,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2198,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2196,5'
          Dst:             pr_log_pri
    - functionName:    delay_handle_delay
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1519
      functionLinenumberEnd: 1551
      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:1522,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1528,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1532,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1533,9'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_delay.c:1534,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1538,12'
          Dst:             delay_handle_info
        - Src:             'mod_delay.c:1540,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1541,9'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_delay.c:1542,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1546,12'
          Dst:             delay_handle_reset
        - Src:             'mod_delay.c:1549,3'
          Dst:             pr_ctrls_add_response
    - functionName:    delay_handle_info
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1447
      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:1305,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:1306,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:1307,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1308,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:1313,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1311,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1320,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1321,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1325,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1323,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1328,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1326,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1330,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1337,14'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:1345,9'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1347,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1360,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1371,9'
          Dst:             pr_snprintf
        - Src:             'mod_delay.c:1374,16'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1378,11'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1383,11'
          Dst:             strlen
        - Src:             'mod_delay.c:1384,9'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1388,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1391,9'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1393,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1406,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1414,9'
          Dst:             pr_snprintf
        - Src:             'mod_delay.c:1417,16'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1421,11'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1426,11'
          Dst:             strlen
        - Src:             'mod_delay.c:1427,9'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1431,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1434,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1437,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1437,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1435,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1440,3'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1445,3'
          Dst:             destroy_pool
    - functionName:    delay_handle_reset
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1450
      functionLinenumberEnd: 1516
      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:1455,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:1456,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:1457,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1458,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:1463,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1461,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1472,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1473,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1476,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1482,21'
          Dst:             strerror
        - Src:             'mod_delay.c:1480,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1483,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1488,7'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:1489,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1492,60'
          Dst:             strerror
        - Src:             'mod_delay.c:1491,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1493,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1499,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:1501,56'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1501,47'
          Dst:             strerror
        - Src:             'mod_delay.c:1500,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1504,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1505,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1509,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1507,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1514,3'
          Dst:             pr_ctrls_add_response
    - functionName:    delay_table_load
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1124
      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:1077,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1079,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:1080,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1081,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1090,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1093,25'
          Dst:             mmap
        - Src:             'mod_delay.c:1097,20'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1108,9'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1110,16'
          Dst:             fcntl
        - Src:             'mod_delay.c:1111,15'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1112,13'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1118,7'
          Dst:             __errno_location
    - functionName:    delay_get_user_rownum
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 624
      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: 627
      functionLinenumberEnd: 637
      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: 1222
      functionLinenumberEnd: 1263
      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:1225,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1227,9'
          Dst:             munmap
        - Src:             'mod_delay.c:1228,20'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1232,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1230,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1234,28'
          Dst:             strerror
        - Src:             'mod_delay.c:1233,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1236,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1250,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1252,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:1253,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1254,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: 708
      functionLinenumberEnd: 1066
      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:734,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:735,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:736,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:737,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:742,7'
          Dst:             strerror
        - Src:             'mod_delay.c:740,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:744,26'
          Dst:             strerror
        - Src:             'mod_delay.c:743,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:745,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:750,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'mod_delay.c:753,27'
          Dst:             __errno_location
        - Src:             'mod_delay.c:753,18'
          Dst:             strerror
        - Src:             'mod_delay.c:751,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:757,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:760,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:760,7'
          Dst:             strerror
        - Src:             'mod_delay.c:758,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:763,7'
          Dst:             pr_fsio_fstat
        - Src:             'mod_delay.c:764,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:767,26'
          Dst:             strerror
        - Src:             'mod_delay.c:766,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:768,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:770,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:778,26'
          Dst:             strerror
        - Src:             'mod_delay.c:777,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:779,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:781,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:791,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:800,3'
          Dst:             delay_table_init_lookup
        - Src:             'mod_delay.c:810,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:812,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:813,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:815,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:816,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:822,22'
          Dst:             strerror
        - Src:             'mod_delay.c:820,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:825,9'
          Dst:             strerror
        - Src:             'mod_delay.c:823,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:826,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:828,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:837,9'
          Dst:             lseek
        - Src:             'mod_delay.c:838,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:842,50'
          Dst:             strerror
        - Src:             'mod_delay.c:840,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:845,50'
          Dst:             strerror
        - Src:             'mod_delay.c:843,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:847,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:849,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:853,9'
          Dst:             write
        - Src:             'mod_delay.c:854,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:858,9'
          Dst:             strerror
        - Src:             'mod_delay.c:856,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:861,9'
          Dst:             strerror
        - Src:             'mod_delay.c:859,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:863,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:865,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:870,5'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:874,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:875,9'
          Dst:             fcntl
        - Src:             'mod_delay.c:877,58'
          Dst:             __errno_location
        - Src:             'mod_delay.c:877,49'
          Dst:             strerror
        - Src:             'mod_delay.c:876,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:884,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:887,23'
          Dst:             mmap
        - Src:             'mod_delay.c:891,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:897,7'
          Dst:             strerror
        - Src:             'mod_delay.c:895,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:900,7'
          Dst:             strerror
        - Src:             'mod_delay.c:898,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:902,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:905,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:917,11'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:919,16'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_delay.c:924,11'
          Dst:             strcmp
        - Src:             'mod_delay.c:935,11'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:937,11'
          Dst:             strcmp
        - Src:             'mod_delay.c:957,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:959,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:960,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:962,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:963,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:969,22'
          Dst:             strerror
        - Src:             'mod_delay.c:967,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:972,9'
          Dst:             strerror
        - Src:             'mod_delay.c:970,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:973,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:975,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:984,9'
          Dst:             lseek
        - Src:             'mod_delay.c:985,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:989,50'
          Dst:             strerror
        - Src:             'mod_delay.c:987,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:992,50'
          Dst:             strerror
        - Src:             'mod_delay.c:990,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:994,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:996,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1000,9'
          Dst:             write
        - Src:             'mod_delay.c:1001,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1005,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1003,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1008,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1006,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1010,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1012,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1017,5'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:1019,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1021,5'
          Dst:             delay_table_reset
        - Src:             'mod_delay.c:1025,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1026,9'
          Dst:             fcntl
        - Src:             'mod_delay.c:1028,58'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1028,49'
          Dst:             strerror
        - Src:             'mod_delay.c:1027,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1033,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1035,7'
          Dst:             munmap
        - Src:             'mod_delay.c:1036,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1037,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1041,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1039,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1043,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1042,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1045,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1052,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1053,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1057,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1055,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1059,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1058,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1061,5'
          Dst:             __errno_location
    - functionName:    delay_table_init_lookup
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 706
      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:687,12'
          Dst:             pcalloc
    - functionName:    delay_table_reset
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1193
      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:1135,14'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_delay.c:1141,9'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1144,5'
          Dst:             sstrncpy
        - Src:             'mod_delay.c:1151,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1157,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1163,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1168,9'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1171,5'
          Dst:             sstrncpy
        - Src:             'mod_delay.c:1177,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1183,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1189,5'
          Dst:             sstrcat
    - functionName:    delay_inject_delay_with_jitter
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 412
      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:402,17'
          Dst:             pr_random_next
        - Src:             'mod_delay.c:404,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:412,10'
          Dst:             delay_inject_delay
    - functionName:    delay_inject_delay
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 389
      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:374,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:377,3'
          Dst:             delay_signals_block
        - Src:             'mod_delay.c:378,9'
          Dst:             select
        - Src:             'mod_delay.c:379,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:380,3'
          Dst:             delay_signals_unblock
        - Src:             'mod_delay.c:386,5'
          Dst:             pr_signals_handle
    - functionName:    delay_signals_block
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 358
      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:354,7'
          Dst:             delay_mask_signals
        - Src:             'mod_delay.c:356,46'
          Dst:             __errno_location
        - Src:             'mod_delay.c:356,37'
          Dst:             strerror
        - Src:             'mod_delay.c:355,5'
          Dst:             pr_trace_msg
    - functionName:    delay_signals_unblock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 365
      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:361,7'
          Dst:             delay_mask_signals
        - Src:             'mod_delay.c:363,48'
          Dst:             __errno_location
        - Src:             'mod_delay.c:363,39'
          Dst:             strerror
        - Src:             'mod_delay.c:362,5'
          Dst:             pr_trace_msg
    - functionName:    delay_mask_signals
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 350
      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:330,5'
          Dst:             sigemptyset
        - Src:             'mod_delay.c:332,5'
          Dst:             sigaddset
        - 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:337,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:340,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:342,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:344,11'
          Dst:             sigprocmask
        - Src:             'mod_delay.c:347,11'
          Dst:             sigprocmask
    - functionName:    delay_pre_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 1877
      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:1875,3'
          Dst:             gettimeofday
    - functionName:    delay_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1764
      functionLinenumberEnd: 1865
      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:1777,19'
          Dst:             get_param_ptr
        - Src:             'mod_delay.c:1783,12'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1786,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1787,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1791,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1789,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1794,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1792,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1796,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1801,3'
          Dst:             gettimeofday
        - Src:             'mod_delay.c:1803,3'
          Dst:             delay_table_wlock
        - Src:             'mod_delay.c:1807,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1810,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_delay.c:1813,12'
          Dst:             delay_get_median
        - Src:             'mod_delay.c:1820,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1821,5'
          Dst:             delay_table_add_interval
        - Src:             'mod_delay.c:1828,5'
          Dst:             pr_event_generate
        - Src:             'mod_delay.c:1832,3'
          Dst:             delay_table_unlock
        - Src:             'mod_delay.c:1833,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1836,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1836,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1834,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1844,12'
          Dst:             close
        - Src:             'mod_delay.c:1853,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1856,28'
          Dst:             delay_inject_delay_with_jitter
        - Src:             'mod_delay.c:1860,5'
          Dst:             pr_trace_msg
    - functionName:    delay_pre_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1984
      functionLinenumberEnd: 1994
      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:1992,3'
          Dst:             gettimeofday
    - functionName:    delay_post_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1982
      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:1892,19'
          Dst:             get_param_ptr
        - Src:             'mod_delay.c:1898,12'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1901,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1902,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1906,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1904,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1909,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1907,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1911,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1916,3'
          Dst:             gettimeofday
        - Src:             'mod_delay.c:1918,3'
          Dst:             delay_table_wlock
        - Src:             'mod_delay.c:1933,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1936,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_delay.c:1939,12'
          Dst:             delay_get_median
        - Src:             'mod_delay.c:1946,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1947,5'
          Dst:             delay_table_add_interval
        - Src:             'mod_delay.c:1954,5'
          Dst:             pr_event_generate
        - Src:             'mod_delay.c:1958,3'
          Dst:             delay_table_unlock
        - Src:             'mod_delay.c:1959,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1962,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1962,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1960,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1970,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1973,28'
          Dst:             delay_inject_delay_with_jitter
        - Src:             'mod_delay.c:1977,5'
          Dst:             pr_trace_msg
    - functionName:    delay_log_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1741
      functionLinenumberEnd: 1762
      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:1754,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1757,7'
          Dst:             delay_inject_delay
    - functionName:    delay_log_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1710
      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:1702,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1705,7'
          Dst:             delay_inject_delay
    - functionName:    delay_log_pass_err
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1712
      functionLinenumberEnd: 1739
      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:1731,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1734,7'
          Dst:             delay_inject_delay
    - functionName:    delay_table_wlock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1220
      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:1203,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1205,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1206,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1209,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1213,61'
          Dst:             strerror
        - Src:             'mod_delay.c:1213,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1215,5'
          Dst:             __errno_location
    - functionName:    delay_get_median
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 322
      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:259,24'
          Dst:             make_array
        - Src:             'mod_delay.c:279,9'
          Dst:             strcmp
        - Src:             'mod_delay.c:294,20'
          Dst:             push_array
        - Src:             'mod_delay.c:298,14'
          Dst:             push_array
        - Src:             'mod_delay.c:300,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:303,12'
          Dst:             delay_select_k
        - Src:             'mod_delay.c:308,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:311,7'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:317,7'
          Dst:             pr_trace_msg
    - functionName:    delay_table_add_interval
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 670
      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:650,9'
          Dst:             strcmp
    - functionName:    delay_table_unlock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1290
      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:1273,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1275,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1276,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1279,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1283,63'
          Dst:             strerror
        - Src:             'mod_delay.c:1283,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1285,5'
          Dst:             __errno_location
    - functionName:    delay_select_k
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 251
      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:185,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:216,7'
          Dst:             pr_signals_handle
    - functionName:    set_delayctrlsacls
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1590
      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:1562,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1562,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1563,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1563,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1563,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1563,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1563,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1565,13'
          Dst:             pr_ctrls_parse_acl
        - Src:             'mod_delay.c:1568,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1569,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1570,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1570,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1574,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1575,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1576,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1576,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1579,16'
          Dst:             pr_ctrls_set_module_acls
        - Src:             'mod_delay.c:1582,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1582,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1582,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1586,10'
          Dst:             mod_create_ret
    - functionName:    set_delayengine
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1593
      functionLinenumberEnd: 1610
      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:1597,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1597,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1598,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1598,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1598,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1598,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1598,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1600,12'
          Dst:             get_boolean
        - Src:             'mod_delay.c:1602,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1602,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1605,7'
          Dst:             add_config_param
        - Src:             'mod_delay.c:1606,16'
          Dst:             pcalloc
        - Src:             'mod_delay.c:1609,10'
          Dst:             mod_create_ret
    - functionName:    set_delayonevent
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1613
      functionLinenumberEnd: 1664
      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:1618,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1618,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1619,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1619,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1619,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1619,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1619,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1621,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1624,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1627,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1630,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1634,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1634,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1634,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1638,7'
          Dst:             delay_str_get_duration_ms
        - Src:             'mod_delay.c:1640,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1640,5'
          Dst:             strerror
        - Src:             'mod_delay.c:1640,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1640,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1640,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1644,7'
          Dst:             add_config_param
        - Src:             'mod_delay.c:1645,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1647,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1648,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1656,7'
          Dst:             pr_module_exists
        - Src:             'mod_delay.c:1663,10'
          Dst:             mod_create_ret
    - functionName:    set_delaytable
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1667
      functionLinenumberEnd: 1684
      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:1670,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1670,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1671,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1671,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1671,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1671,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1671,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1673,7'
          Dst:             pr_fs_valid_path
        - Src:             'mod_delay.c:1674,9'
          Dst:             strcasecmp
        - Src:             'mod_delay.c:1675,7'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1675,7'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1682,3'
          Dst:             add_config_param_str
        - Src:             'mod_delay.c:1683,10'
          Dst:             mod_create_ret
    - functionName:    delay_str_get_duration_ms
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 606
      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:429,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:433,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:437,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:452,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:455,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:460,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:475,9'
          Dst:             strlen
        - Src:             'mod_delay.c:477,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:481,16'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:485,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:487,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:502,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:505,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:510,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:525,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:529,16'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:531,18'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:539,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:541,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:556,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:559,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:564,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:579,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:584,15'
          Dst:             strtol
        - Src:             'mod_delay.c:587,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:593,5'
          Dst:             __errno_location
    - functionName:    core_get_sess_files_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6926
      functionLinenumberEnd: 6933
      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:6931,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6933,10'
          Dst:             pstrdup
    - functionName:    core_get_sess_bytes_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6916
      functionLinenumberEnd: 6923
      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:6921,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6923,10'
          Dst:             pstrdup
    - functionName:    core_get_xfer_bytes_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6936
      functionLinenumberEnd: 6943
      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:6941,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6943,10'
          Dst:             pstrdup
    - functionName:    set_server_auth_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7192
      functionLinenumberEnd: 7266
      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:7195,7'
          Dst:             find_config
        - Src:             'mod_core.c:7202,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7209,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'mod_core.c:7221,22'
          Dst:             strlen
        - Src:             'mod_core.c:7223,20'
          Dst:             strlen
        - Src:             'mod_core.c:7226,11'
          Dst:             pr_module_get
        - Src:             'mod_core.c:7246,13'
          Dst:             pr_stash_add_symbol
        - Src:             'mod_core.c:7250,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7256,9'
          Dst:             pr_log_debug
    - functionName:    core_scrub_scoreboard_cb
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 192
      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:190,3'
          Dst:             pr_scoreboard_scrub
    - functionName:    core_startup_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7057
      functionLinenumberEnd: 7088
      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:7074,9'
          Dst:             find_config
        - Src:             'mod_core.c:7084,29'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:7084,29'
          Dst:             core_scrub_scoreboard_cb
    - functionName:    core_init
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7093
      functionLinenumberEnd: 7150
      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:7095,3'
          Dst:             pr_cmd_set_handler
        - 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:7111,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7112,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7113,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7114,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7115,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7116,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7117,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7118,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7119,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7120,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7121,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7122,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7123,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7124,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7125,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7126,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7127,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7128,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7129,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7130,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7131,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7132,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7133,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7138,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7139,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7140,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7141,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7142,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7143,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7145,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7145,3'
          Dst:             core_connected_ev
        - Src:             'mod_core.c:7146,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7146,3'
          Dst:             core_postparse_ev
        - Src:             'mod_core.c:7147,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7147,3'
          Dst:             core_restart_ev
        - Src:             'mod_core.c:7148,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7148,3'
          Dst:             core_startup_ev
    - functionName:    core_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7268
      functionLinenumberEnd: 7564
      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:7275,3'
          Dst:             init_auth
        - Src:             'mod_core.c:7283,7'
          Dst:             pr_inet_set_proto_keepalive
        - Src:             'mod_core.c:7286,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7286,7'
          Dst:             strerror
        - Src:             'mod_core.c:7285,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7292,7'
          Dst:             find_config
        - Src:             'mod_core.c:7295,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_core.c:7298,18'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:7300,5'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:7300,5'
          Dst:             core_idle_timeout_cb
        - Src:             'mod_core.c:7305,7'
          Dst:             find_config
        - Src:             'mod_core.c:7310,5'
          Dst:             pr_data_set_linger
        - Src:             'mod_core.c:7314,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:7316,5'
          Dst:             pr_log_setdebuglevel
        - Src:             'mod_core.c:7319,7'
          Dst:             find_config
        - Src:             'mod_core.c:7323,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7328,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7331,10'
          Dst:             pr_fsio_set_options
        - Src:             'mod_core.c:7334,7'
          Dst:             find_config
        - Src:             'mod_core.c:7343,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:7348,5'
          Dst:             pr_regexp_set_limits
        - Src:             'mod_core.c:7349,5'
          Dst:             pr_regexp_set_engine
        - Src:             'mod_core.c:7353,7'
          Dst:             find_config
        - Src:             'mod_core.c:7355,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7357,9'
          Dst:             pr_env_set
        - Src:             'mod_core.c:7359,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7359,30'
          Dst:             strerror
        - Src:             'mod_core.c:7358,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7362,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:7365,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7369,7'
          Dst:             find_config
        - Src:             'mod_core.c:7371,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7373,9'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:7375,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7375,30'
          Dst:             strerror
        - Src:             'mod_core.c:7374,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7378,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:7381,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7384,3'
          Dst:             set_server_auth_order
        - Src:             'mod_core.c:7388,7'
          Dst:             find_config
        - Src:             'mod_core.c:7396,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7400,13'
          Dst:             strchr
        - Src:             'mod_core.c:7402,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7409,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:7411,15'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:7417,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:7417,13'
          Dst:             strerror
        - Src:             'mod_core.c:7415,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7422,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:7422,44'
          Dst:             strerror
        - Src:             'mod_core.c:7421,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7428,7'
          Dst:             find_config
        - Src:             'mod_core.c:7433,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:7435,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7435,30'
          Dst:             strerror
        - Src:             'mod_core.c:7434,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7441,5'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:7449,9'
          Dst:             find_config
        - Src:             'mod_core.c:7452,9'
          Dst:             pr_scoreboard_scrub
        - Src:             'mod_core.c:7459,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7459,7'
          Dst:             core_get_xfer_bytes_str
        - Src:             'mod_core.c:7464,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7464,7'
          Dst:             strerror
        - Src:             'mod_core.c:7463,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7467,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7467,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7472,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7472,7'
          Dst:             strerror
        - Src:             'mod_core.c:7471,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7475,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7475,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7480,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7480,7'
          Dst:             strerror
        - Src:             'mod_core.c:7479,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7483,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7483,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7488,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7488,7'
          Dst:             strerror
        - Src:             'mod_core.c:7487,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7491,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7491,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7496,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7496,7'
          Dst:             strerror
        - Src:             'mod_core.c:7495,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7499,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7499,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7504,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7504,7'
          Dst:             strerror
        - Src:             'mod_core.c:7503,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7507,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7507,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7512,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7512,7'
          Dst:             strerror
        - Src:             'mod_core.c:7511,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7516,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7516,3'
          Dst:             core_chroot_ev
        - Src:             'mod_core.c:7524,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:7529,22'
          Dst:             pr_fsio_open
        - Src:             'mod_core.c:7532,31'
          Dst:             __errno_location
        - Src:             'mod_core.c:7532,22'
          Dst:             strerror
        - Src:             'mod_core.c:7531,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7535,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_core.c:7537,33'
          Dst:             __errno_location
        - Src:             'mod_core.c:7537,24'
          Dst:             strerror
        - Src:             'mod_core.c:7536,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7538,9'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:7543,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:7545,35'
          Dst:             __errno_location
        - Src:             'mod_core.c:7545,26'
          Dst:             strerror
        - Src:             'mod_core.c:7544,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7546,11'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:7554,7'
          Dst:             find_config
        - Src:             'mod_core.c:7559,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:7560,7'
          Dst:             pr_proctitle_set_static_str
    - functionName:    core_idle_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 152
      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:128,13'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:132,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:140,3'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:142,3'
          Dst:             pr_response_send_async
        - Src:             'mod_core.c:145,3'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:146,3'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:148,3'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:149,3'
          Dst:             pr_session_disconnect
    - functionName:    core_handle_locale_env
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 184
      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: 6949
      functionLinenumberEnd: 6978
      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:6956,7'
          Dst:             find_config
        - Src:             'mod_core.c:6960,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6966,12'
          Dst:             pr_fsio_open
        - Src:             'mod_core.c:6969,26'
          Dst:             __errno_location
        - Src:             'mod_core.c:6969,17'
          Dst:             strerror
        - Src:             'mod_core.c:6968,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6976,9'
          Dst:             find_config_next
    - functionName:    core_connected_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6980
      functionLinenumberEnd: 6982
      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:6981,3'
          Dst:             session_set_connected
    - functionName:    core_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6988
      functionLinenumberEnd: 7042
      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:7011,14'
          Dst:             make_sub_pool
        - Src:             'mod_core.c:7013,35'
          Dst:             pstrdup
        - Src:             'mod_core.c:7013,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:7014,9'
          Dst:             dir_check_limits
        - Src:             'mod_core.c:7016,5'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7019,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:7020,35'
          Dst:             pstrdup
        - Src:             'mod_core.c:7020,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:7021,9'
          Dst:             dir_check_limits
        - Src:             'mod_core.c:7023,5'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7026,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:7027,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:7035,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7037,19'
          Dst:             get_param_ptr
    - functionName:    core_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7044
      functionLinenumberEnd: 7055
      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:7045,3'
          Dst:             pr_fs_statcache_reset
        - Src:             'mod_core.c:7046,3'
          Dst:             pr_scoreboard_scrub
        - Src:             'mod_core.c:7050,12'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:7051,5'
          Dst:             pr_trace_set_file
    - functionName:    regex_filters
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3654
      functionLinenumberEnd: 3693
      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:3660,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3665,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3668,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_core.c:3669,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3671,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3673,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3674,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3675,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3679,16'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3682,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_core.c:3683,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3685,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3687,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3688,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3689,12'
          Dst:             mod_create_ret
    - functionName:    core_pre_any
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3696
      functionLinenumberEnd: 3772
      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:3701,15'
          Dst:             core_exceeded_cmd_rate
        - Src:             'mod_core.c:3705,5'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:3707,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3712,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:3718,5'
          Dst:             pr_signals_block
        - Src:             'mod_core.c:3719,12'
          Dst:             select
        - Src:             'mod_core.c:3720,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:3735,15'
          Dst:             pr_table_get
        - Src:             'mod_core.c:3737,9'
          Dst:             pr_cmd_cmp
        - 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:3748,13'
          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:3759,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3762,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3764,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3765,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:3766,16'
          Dst:             mod_create_ret
    - functionName:    core_help
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4825
      functionLinenumberEnd: 4872
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          181
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - __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:4826,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4829,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4836,7'
          Dst:             strerror
        - Src:             'mod_core.c:4835,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4838,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4839,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4840,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4844,5'
          Dst:             pr_help_add_response
        - Src:             'mod_core.c:4850,11'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:4851,15'
          Dst:             toupper
        - Src:             'mod_core.c:4855,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:4856,14'
          Dst:             pr_module_call
        - Src:             'mod_core.c:4856,14'
          Dst:             site_dispatch
        - Src:             'mod_core.c:4859,9'
          Dst:             pr_help_add_response
        - Src:             'mod_core.c:4860,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4863,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4866,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4867,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4868,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4871,10'
          Dst:             mod_create_ret
    - functionName:    core_port
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4052
      functionLinenumberEnd: 4276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         96
      ICount:          673
      EdgeCount:       133
      CyclomaticComplexity: 39
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - dir_check
        - find_config
        - get_param_ptr
        - htons
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_inet_allowforeignaddress
        - pr_inet_close
        - pr_log_debug
        - pr_log_pri
        - 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:  []
      Callsites:
        - Src:             'mod_core.c:4067,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4069,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4070,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4071,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4074,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4074,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4079,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4082,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4084,7'
          Dst:             strerror
        - Src:             'mod_core.c:4083,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4086,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4087,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4088,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4099,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:4103,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4105,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4107,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4108,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4109,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4114,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_core.c:4116,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4117,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4119,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4120,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4121,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4126,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4127,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4129,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4130,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4131,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4136,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4137,9'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4138,7'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4141,7'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4146,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4149,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:4153,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:4153,7'
          Dst:             strerror
        - Src:             'mod_core.c:4152,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4154,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4156,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4157,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4158,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4167,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4168,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4169,9'
          Dst:             find_config
        - Src:             'mod_core.c:4175,11'
          Dst:             find_config
        - Src:             'mod_core.c:4185,9'
          Dst:             find_config
        - Src:             'mod_core.c:4193,7'
          Dst:             pr_netaddr_is_rfc1918
        - 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:4198,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4199,17'
          Dst:             pr_netaddr_dup
        - Src:             'mod_core.c:4202,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4200,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4205,45'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4205,3'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4206,43'
          Dst:             htons
        - Src:             'mod_core.c:4206,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4212,7'
          Dst:             find_config
        - Src:             'mod_core.c:4213,9'
          Dst:             pr_inet_allowforeignaddress
        - Src:             'mod_core.c:4219,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4223,11'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4224,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'mod_core.c:4225,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4227,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4229,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4230,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4231,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4236,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4238,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4240,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4241,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4242,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4252,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4255,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4257,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4258,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4259,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4268,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4273,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4275,10'
          Dst:             mod_create_ret
    - functionName:    core_pasv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3849
      functionLinenumberEnd: 4050
      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:3858,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3860,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3861,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3862,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3865,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3865,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3870,8'
          Dst:             dir_check
        - Src:             'mod_core.c:3873,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3875,7'
          Dst:             strerror
        - Src:             'mod_core.c:3874,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3877,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3878,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3879,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3884,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:3888,7'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3888,55'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3891,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:3901,11'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3905,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3902,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3906,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3918,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'mod_core.c:3921,7'
          Dst:             find_config
        - Src:             'mod_core.c:3926,17'
          Dst:             pr_inet_create_conn_portrange
        - Src:             'mod_core.c:3933,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3942,17'
          Dst:             pr_inet_create_conn2
        - Src:             'mod_core.c:3947,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:3949,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3952,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3953,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3954,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3960,7'
          Dst:             find_config
        - Src:             'mod_core.c:3971,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'mod_core.c:3973,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'mod_core.c:3976,10'
          Dst:             pr_inet_set_block
        - Src:             'mod_core.c:3977,7'
          Dst:             pr_inet_listen
        - Src:             'mod_core.c:3978,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:3981,7'
          Dst:             strerror
        - Src:             'mod_core.c:3980,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3983,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3984,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3985,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3988,23'
          Dst:             pr_netio_open
        - Src:             'mod_core.c:3995,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4002,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4003,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4004,9'
          Dst:             find_config
        - Src:             'mod_core.c:4007,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4010,11'
          Dst:             find_config
        - Src:             'mod_core.c:4014,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4020,9'
          Dst:             find_config
        - Src:             'mod_core.c:4023,28'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4029,9'
          Dst:             strrchr
        - Src:             'mod_core.c:4040,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4046,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4049,10'
          Dst:             mod_create_ret
    - functionName:    core_eprt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4278
      functionLinenumberEnd: 4592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         111
      ICount:          790
      EdgeCount:       144
      CyclomaticComplexity: 35
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - atoi
        - dir_check
        - find_config
        - get_param_ptr
        - htons
        - inet_pton
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_inet_allowforeignaddress
        - pr_inet_close
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_clear
        - 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:4348,3'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4416,3'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4567,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:4284,32'
          Dst:             pstrdup
        - Src:             'mod_core.c:4290,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4292,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4293,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4294,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4297,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4297,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4302,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4305,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4307,7'
          Dst:             strerror
        - Src:             'mod_core.c:4306,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4309,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4310,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4311,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4315,3'
          Dst:             pr_netaddr_clear
        - Src:             'mod_core.c:4325,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:4329,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4331,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4333,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4334,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4335,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4346,12'
          Dst:             atoi
        - Src:             'mod_core.c:4354,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4361,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4362,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4366,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4373,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4374,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4375,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4379,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:4390,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4392,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4393,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4394,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4397,9'
          Dst:             strchr
        - Src:             'mod_core.c:4399,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4401,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4403,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4404,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4405,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4420,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4421,12'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4426,41'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'mod_core.c:4426,11'
          Dst:             inet_pton
        - Src:             'mod_core.c:4428,28'
          Dst:             __errno_location
        - Src:             'mod_core.c:4428,19'
          Dst:             strerror
        - Src:             'mod_core.c:4427,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4429,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4431,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4432,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4433,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4441,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4442,12'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4447,42'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'mod_core.c:4447,11'
          Dst:             inet_pton
        - Src:             'mod_core.c:4449,28'
          Dst:             __errno_location
        - Src:             'mod_core.c:4449,19'
          Dst:             strerror
        - Src:             'mod_core.c:4448,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4450,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4452,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4453,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4454,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4463,10'
          Dst:             atoi
        - Src:             'mod_core.c:4465,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:4473,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4475,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4477,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4478,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4479,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4488,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4489,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4490,9'
          Dst:             find_config
        - Src:             'mod_core.c:4496,11'
          Dst:             find_config
        - Src:             'mod_core.c:4506,9'
          Dst:             find_config
        - Src:             'mod_core.c:4514,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4515,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4516,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4519,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4521,5'
          Dst:             pr_netaddr_clear
        - Src:             'mod_core.c:4522,32'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4522,5'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4524,7'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4523,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'mod_core.c:4527,52'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4526,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4534,7'
          Dst:             find_config
        - Src:             'mod_core.c:4535,9'
          Dst:             pr_inet_allowforeignaddress
        - Src:             'mod_core.c:4538,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4540,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4542,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4543,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4544,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4554,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4557,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4559,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4560,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4561,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4565,28'
          Dst:             htons
        - Src:             'mod_core.c:4565,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4569,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4573,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4577,47'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4577,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'mod_core.c:4578,43'
          Dst:             pr_netaddr_get_port
        - Src:             'mod_core.c:4578,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4584,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4589,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4591,10'
          Dst:             mod_create_ret
    - functionName:    core_epsv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4594
      functionLinenumberEnd: 4823
      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:4649,5'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4668,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:4602,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4602,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4607,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4610,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4612,7'
          Dst:             strerror
        - Src:             'mod_core.c:4611,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4614,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4615,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4616,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4620,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:4623,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:4625,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4627,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4628,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4629,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4637,14'
          Dst:             strtol
        - Src:             'mod_core.c:4640,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4643,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4644,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4645,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4649,13'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4656,13'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4674,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4681,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4682,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4686,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4693,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4694,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4695,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4700,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4704,7'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4704,55'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4711,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'mod_core.c:4714,7'
          Dst:             find_config
        - Src:             'mod_core.c:4730,15'
          Dst:             pr_inet_create_conn_portrange
        - Src:             'mod_core.c:4737,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4741,17'
          Dst:             pr_inet_create_conn2
        - Src:             'mod_core.c:4746,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:4748,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4751,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4752,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4753,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4760,7'
          Dst:             find_config
        - Src:             'mod_core.c:4771,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'mod_core.c:4773,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'mod_core.c:4776,3'
          Dst:             pr_inet_set_block
        - Src:             'mod_core.c:4777,7'
          Dst:             pr_inet_listen
        - Src:             'mod_core.c:4778,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:4781,7'
          Dst:             strerror
        - Src:             'mod_core.c:4780,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4783,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4784,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4785,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4788,23'
          Dst:             pr_netio_open
        - Src:             'mod_core.c:4817,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4819,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4822,10'
          Dst:             mod_create_ret
    - functionName:    core_syst
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5429
      functionLinenumberEnd: 5431
      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:5430,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5431,10'
          Dst:             mod_create_ret
    - functionName:    core_pwd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3827
      functionLinenumberEnd: 3847
      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:3828,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3828,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3830,8'
          Dst:             dir_check
        - Src:             'mod_core.c:3833,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3836,7'
          Dst:             strerror
        - Src:             'mod_core.c:3835,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3838,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3839,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3840,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3844,30'
          Dst:             pr_fs_encode_path
        - Src:             'mod_core.c:3844,5'
          Dst:             quote_dir
        - Src:             'mod_core.c:3843,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:3846,10'
          Dst:             mod_create_ret
    - functionName:    core_cwd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5901
      functionLinenumberEnd: 5921
      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:5903,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5903,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5905,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5908,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5911,7'
          Dst:             strerror
        - Src:             'mod_core.c:5910,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5912,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5915,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5916,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5917,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5920,10'
          Dst:             core_chdir
    - functionName:    core_mkd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5797
      functionLinenumberEnd: 5899
      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:5832,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:5801,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5801,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5806,7'
          Dst:             strchr
        - Src:             'mod_core.c:5807,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5809,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5810,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5811,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5814,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5817,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5820,7'
          Dst:             strerror
        - Src:             'mod_core.c:5819,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5821,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5824,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5825,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5826,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5831,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:5837,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5839,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5841,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5842,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5843,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5846,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5848,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5850,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5851,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5852,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5855,9'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:5859,52'
          Dst:             strerror
        - Src:             'mod_core.c:5859,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5861,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5862,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5863,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5866,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:5869,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5871,52'
          Dst:             strerror
        - Src:             'mod_core.c:5871,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5873,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5874,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5875,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5878,9'
          Dst:             pr_fsio_smkdir
        - Src:             'mod_core.c:5880,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5881,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5885,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:5886,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:5886,52'
          Dst:             strerror
        - Src:             'mod_core.c:5883,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5888,52'
          Dst:             strerror
        - Src:             'mod_core.c:5888,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5890,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5891,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5892,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5896,5'
          Dst:             quote_dir
        - Src:             'mod_core.c:5895,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5898,10'
          Dst:             mod_create_ret
    - functionName:    core_rmd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5692
      functionLinenumberEnd: 5795
      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:5717,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:5697,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5697,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5699,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5702,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5705,7'
          Dst:             strerror
        - Src:             'mod_core.c:5704,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5706,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5709,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5710,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5711,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5716,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:5722,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5724,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5726,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5727,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5728,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5731,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5733,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5735,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5736,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5737,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5740,9'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:5744,52'
          Dst:             strerror
        - Src:             'mod_core.c:5744,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5746,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5747,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5748,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5751,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:5754,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5756,52'
          Dst:             strerror
        - Src:             'mod_core.c:5756,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5758,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5759,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5760,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5763,9'
          Dst:             pr_fsio_rmdir_with_error
        - Src:             'mod_core.c:5765,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5767,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:5768,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:5768,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:5773,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:5774,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:5774,52'
          Dst:             strerror
        - Src:             'mod_core.c:5771,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5777,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:5777,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5778,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:5783,9'
          Dst:             strerror
        - Src:             'mod_core.c:5782,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5786,52'
          Dst:             strerror
        - Src:             'mod_core.c:5786,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5788,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5789,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5790,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5793,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5794,10'
          Dst:             mod_create_ret
    - functionName:    core_cdup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5923
      functionLinenumberEnd: 5926
      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:5924,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5924,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5925,10'
          Dst:             core_chdir
    - functionName:    core_dele
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6068
      functionLinenumberEnd: 6233
      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:6094,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6074,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6074,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6076,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6079,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6082,7'
          Dst:             strerror
        - Src:             'mod_core.c:6081,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6083,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6086,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6087,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6088,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6093,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6099,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6101,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6103,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6104,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6105,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6108,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6110,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6112,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6113,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6114,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6118,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6122,52'
          Dst:             strerror
        - Src:             'mod_core.c:6122,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6124,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6125,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6126,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6129,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6130,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6132,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6133,52'
          Dst:             strerror
        - Src:             'mod_core.c:6133,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6135,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6136,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6137,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6145,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6146,9'
          Dst:             pr_fsio_lstat_with_error
        - Src:             'mod_core.c:6148,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6150,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6151,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6151,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6154,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6154,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6155,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6159,62'
          Dst:             strerror
        - Src:             'mod_core.c:6159,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6162,52'
          Dst:             strerror
        - Src:             'mod_core.c:6162,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6164,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6165,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6166,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6178,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6179,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6179,53'
          Dst:             strerror
        - Src:             'mod_core.c:6176,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6181,59'
          Dst:             strerror
        - Src:             'mod_core.c:6181,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6182,52'
          Dst:             strerror
        - Src:             'mod_core.c:6182,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6184,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6185,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6186,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6190,9'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_core.c:6192,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6194,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6195,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6195,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6199,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6200,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6200,53'
          Dst:             strerror
        - Src:             'mod_core.c:6197,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6203,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6203,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6204,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6208,61'
          Dst:             strerror
        - Src:             'mod_core.c:6208,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6211,52'
          Dst:             strerror
        - Src:             'mod_core.c:6211,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6213,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6214,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6215,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6218,14'
          Dst:             dir_abs_path
        - Src:             'mod_core.c:6221,5'
          Dst:             xferlog_write
        - Src:             'mod_core.c:6226,5'
          Dst:             xferlog_write
        - Src:             'mod_core.c:6231,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6232,10'
          Dst:             mod_create_ret
    - functionName:    core_mdtm
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5929
      functionLinenumberEnd: 5990
      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:5935,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5935,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5937,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5940,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5943,7'
          Dst:             strerror
        - Src:             'mod_core.c:5942,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5944,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5947,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5948,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5949,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5954,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:5955,10'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5957,8'
          Dst:             dir_check
        - Src:             'mod_core.c:5958,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:5959,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5961,52'
          Dst:             strerror
        - Src:             'mod_core.c:5961,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5963,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5964,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5965,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5969,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5971,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5972,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5973,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5978,8'
          Dst:             pr_gmtime
        - Src:             'mod_core.c:5980,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5985,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5988,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5989,10'
          Dst:             mod_create_ret
    - functionName:    core_rnfr
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6537
      functionLinenumberEnd: 6623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          280
      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
        - pr_table_remove
        - pstrdup
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:6562,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6542,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6542,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6544,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6547,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6550,7'
          Dst:             strerror
        - Src:             'mod_core.c:6549,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6551,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6554,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6555,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6556,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6561,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6567,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6569,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6571,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6572,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6573,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6576,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6578,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6580,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6581,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6582,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6585,14'
          Dst:             dir_abs_path
        - Src:             'mod_core.c:6588,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6594,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6595,8'
          Dst:             exists2
        - Src:             'mod_core.c:6596,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6598,55'
          Dst:             strerror
        - Src:             'mod_core.c:6598,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6600,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6601,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6602,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6607,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6608,20'
          Dst:             make_sub_pool
        - Src:             'mod_core.c:6609,3'
          Dst:             pr_pool_tag
        - Src:             'mod_core.c:6611,23'
          Dst:             pstrdup
        - Src:             'mod_core.c:6614,14'
          Dst:             pr_fsio_realpath
        - Src:             'mod_core.c:6616,3'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:6618,5'
          Dst:             pstrdup
        - Src:             'mod_core.c:6617,3'
          Dst:             pr_table_add
        - Src:             'mod_core.c:6620,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6622,10'
          Dst:             mod_create_ret
    - functionName:    core_rnto
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6354
      functionLinenumberEnd: 6528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         64
      ICount:          516
      EdgeCount:       84
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check_canon
        - get_param_ptr
        - handle_cross_mount_rename
        - 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_decode_path2
        - pr_fsio_lstat
        - pr_fsio_rename_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:6391,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6361,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6361,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6364,5'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6366,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6368,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6369,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6370,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6373,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6376,14'
          Dst:             __errno_location
        - Src:             'mod_core.c:6379,7'
          Dst:             strerror
        - Src:             'mod_core.c:6378,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6380,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6383,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6384,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6385,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6390,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6396,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6398,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6400,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6401,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6402,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6405,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6407,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6409,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6410,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6411,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6414,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6419,21'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:6421,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6422,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_core.c:6428,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6429,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6431,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6432,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6433,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6438,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:6439,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6441,55'
          Dst:             strerror
        - Src:             'mod_core.c:6441,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6443,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6444,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6445,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6448,9'
          Dst:             pr_fsio_rename_with_error
        - Src:             'mod_core.c:6450,14'
          Dst:             __errno_location
        - Src:             'mod_core.c:6452,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6453,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6453,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6469,9'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6470,9'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6471,9'
          Dst:             strerror
        - Src:             'mod_core.c:6471,27'
          Dst:             strerror
        - Src:             'mod_core.c:6466,14'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6473,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6478,9'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6487,57'
          Dst:             strerror
        - Src:             'mod_core.c:6487,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6489,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6490,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6491,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6497,9'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6498,9'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6499,9'
          Dst:             strerror
        - Src:             'mod_core.c:6495,14'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6502,36'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6502,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6503,9'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6507,57'
          Dst:             strerror
        - Src:             'mod_core.c:6507,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6509,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6510,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6511,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6517,9'
          Dst:             handle_cross_mount_rename
        - Src:             'mod_core.c:6519,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6524,23'
          Dst:             pstrdup
        - Src:             'mod_core.c:6526,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6527,10'
          Dst:             mod_create_ret
    - functionName:    core_rnto_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6530
      functionLinenumberEnd: 6534
      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:6531,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6533,3'
          Dst:             pr_table_remove
    - functionName:    core_size
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5992
      functionLinenumberEnd: 6066
      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:5996,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5996,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6013,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:6023,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6026,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6029,7'
          Dst:             strerror
        - Src:             'mod_core.c:6028,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6030,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:6038,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6039,10'
          Dst:             dir_realpath
        - Src:             'mod_core.c:6041,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6045,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6046,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:6047,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6049,52'
          Dst:             strerror
        - Src:             'mod_core.c:6049,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6051,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6052,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6053,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6057,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6059,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6060,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6061,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6064,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6065,10'
          Dst:             mod_create_ret
    - functionName:    core_quit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3774
      functionLinenumberEnd: 3812
      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:3778,9'
          Dst:             pr_display_fh
        - Src:             'mod_core.c:3780,43'
          Dst:             __errno_location
        - Src:             'mod_core.c:3780,34'
          Dst:             strerror
        - Src:             'mod_core.c:3779,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3783,5'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:3789,15'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3791,11'
          Dst:             pr_display_file
        - Src:             'mod_core.c:3792,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:3795,20'
          Dst:             strerror
        - Src:             'mod_core.c:3794,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3799,11'
          Dst:             pr_response_send
        - Src:             'mod_core.c:3804,7'
          Dst:             pr_response_send
        - Src:             'mod_core.c:3812,10'
          Dst:             mod_create_ret
    - functionName:    core_log_quit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3815
      functionLinenumberEnd: 3824
      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:3818,3'
          Dst:             pr_session_disconnect
        - Src:             'mod_core.c:3824,10'
          Dst:             mod_create_ret
    - functionName:    core_noop
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6625
      functionLinenumberEnd: 6640
      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:6626,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6629,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6631,38'
          Dst:             strerror
        - Src:             'mod_core.c:6631,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6633,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6634,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6635,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6638,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6639,10'
          Dst:             mod_create_ret
    - functionName:    core_feat
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6646
      functionLinenumberEnd: 6690
      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:6651,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6651,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6653,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6656,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6659,7'
          Dst:             strerror
        - Src:             'mod_core.c:6658,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6661,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6662,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6663,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6666,10'
          Dst:             pr_feat_get
        - Src:             'mod_core.c:6668,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6669,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6672,11'
          Dst:             make_array
        - Src:             'mod_core.c:6675,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6676,38'
          Dst:             pstrdup
        - Src:             'mod_core.c:6676,17'
          Dst:             push_array
        - Src:             'mod_core.c:6677,12'
          Dst:             pr_feat_get_next
        - Src:             'mod_core.c:6681,3'
          Dst:             qsort
        - Src:             'mod_core.c:6681,3'
          Dst:             feat_cmp
        - Src:             'mod_core.c:6683,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6685,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6687,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6689,10'
          Dst:             mod_create_ret
    - functionName:    core_opts
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6692
      functionLinenumberEnd: 6747
      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:6698,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6698,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6706,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6709,7'
          Dst:             strerror
        - Src:             'mod_core.c:6708,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6711,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6712,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6713,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6716,12'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:6717,21'
          Dst:             pstrcat
        - Src:             'mod_core.c:6720,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6723,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6726,30'
          Dst:             strerror
        - Src:             'mod_core.c:6725,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6728,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6729,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6730,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6736,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:6741,9'
          Dst:             pr_cmd_dispatch
        - Src:             'mod_core.c:6743,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6746,10'
          Dst:             mod_create_ret
    - functionName:    core_host
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4874
      functionLinenumberEnd: 5208
      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:4882,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4884,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4885,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4886,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4890,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4895,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4897,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4898,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4899,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4902,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4905,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:4927,7'
          Dst:             pr_table_get
        - Src:             'mod_core.c:4928,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4932,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4934,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4935,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4936,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4940,13'
          Dst:             strlen
        - Src:             'mod_core.c:4947,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4949,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4952,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4953,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4954,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4957,14'
          Dst:             pstrndup
        - Src:             'mod_core.c:4960,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:4961,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4965,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4968,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4969,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4970,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4976,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4979,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4980,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4981,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4985,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4987,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:4988,9'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:4989,11'
          Dst:             strncmp
        - Src:             'mod_core.c:4993,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4995,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4998,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4999,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5000,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5004,12'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5005,9'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5007,73'
          Dst:             __errno_location
        - Src:             'mod_core.c:5007,64'
          Dst:             strerror
        - Src:             'mod_core.c:5006,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5013,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5014,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5017,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:5018,9'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:5024,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5028,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5031,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5032,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5033,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5036,11'
          Dst:             strncmp
        - Src:             'mod_core.c:5040,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5042,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5045,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5046,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5047,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5051,12'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5052,9'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5054,73'
          Dst:             __errno_location
        - Src:             'mod_core.c:5054,64'
          Dst:             strerror
        - Src:             'mod_core.c:5053,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5060,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5061,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5068,7'
          Dst:             strchr
        - Src:             'mod_core.c:5070,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5072,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5073,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5074,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5077,18'
          Dst:             pr_namebind_get_server
        - Src:             'mod_core.c:5080,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5083,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5086,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5087,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5088,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5092,7'
          Dst:             strcmp
        - Src:             'mod_core.c:5099,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5101,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:5102,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5104,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5107,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5108,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5109,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5114,10'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5115,7'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5117,71'
          Dst:             __errno_location
        - Src:             'mod_core.c:5117,62'
          Dst:             strerror
        - Src:             'mod_core.c:5116,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5122,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5128,5'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:5206,3'
          Dst:             pr_session_send_banner
        - Src:             'mod_core.c:5207,10'
          Dst:             mod_create_ret
    - functionName:    core_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6749
      functionLinenumberEnd: 6888
      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:6752,7'
          Dst:             find_config
        - Src:             'mod_core.c:6756,20'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:6760,7'
          Dst:             pr_data_set_timeout
        - Src:             'mod_core.c:6765,7'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:6768,9'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:6768,9'
          Dst:             core_idle_timeout_cb
        - Src:             'mod_core.c:6776,7'
          Dst:             find_config
        - Src:             'mod_core.c:6784,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6787,13'
          Dst:             strchr
        - Src:             'mod_core.c:6789,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6796,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:6798,15'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:6804,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:6804,13'
          Dst:             strerror
        - Src:             'mod_core.c:6802,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6809,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:6809,44'
          Dst:             strerror
        - Src:             'mod_core.c:6808,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6815,7'
          Dst:             find_config
        - Src:             'mod_core.c:6820,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:6822,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:6822,30'
          Dst:             strerror
        - Src:             'mod_core.c:6821,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6833,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6835,9'
          Dst:             setsockopt
        - Src:             'mod_core.c:6839,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6839,9'
          Dst:             strerror
        - Src:             'mod_core.c:6837,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6842,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6848,7'
          Dst:             find_config
        - Src:             'mod_core.c:6857,3'
          Dst:             pr_fs_statcache_reset
        - Src:             'mod_core.c:6858,7'
          Dst:             find_config
        - Src:             'mod_core.c:6868,7'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6871,7'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6876,5'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6880,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:6880,3'
          Dst:             core_exit_ev
        - Src:             'mod_core.c:6888,10'
          Dst:             mod_create_ret
    - functionName:    core_post_host
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5210
      functionLinenumberEnd: 5291
      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:5220,12'
          Dst:             pr_fsio_set_options
        - Src:             'mod_core.c:5223,12'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:5226,5'
          Dst:             pr_data_set_linger
        - Src:             'mod_core.c:5231,9'
          Dst:             find_config
        - Src:             'mod_core.c:5233,7'
          Dst:             pr_log_setdebuglevel
        - Src:             'mod_core.c:5237,5'
          Dst:             pr_regexp_set_engine
        - Src:             'mod_core.c:5238,5'
          Dst:             pr_regexp_set_limits
        - Src:             'mod_core.c:5241,9'
          Dst:             find_config
        - Src:             'mod_core.c:5243,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:5245,11'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:5247,41'
          Dst:             __errno_location
        - Src:             'mod_core.c:5247,32'
          Dst:             strerror
        - Src:             'mod_core.c:5246,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5250,11'
          Dst:             find_config_next
        - Src:             'mod_core.c:5254,5'
          Dst:             reset_server_auth_order
        - Src:             'mod_core.c:5260,12'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:5264,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5265,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5266,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5267,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5268,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5269,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5270,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5274,7'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:5279,5'
          Dst:             pr_proctitle_set_static_str
        - Src:             'mod_core.c:5282,5'
          Dst:             pr_event_unregister
        - Src:             'mod_core.c:5282,5'
          Dst:             core_chroot_ev
        - Src:             'mod_core.c:5284,11'
          Dst:             core_sess_init
        - Src:             'mod_core.c:5286,7'
          Dst:             pr_session_disconnect
    - functionName:    core_clnt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5294
      functionLinenumberEnd: 5298
      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:5296,5'
          Dst:             pstrdup
        - Src:             'mod_core.c:5295,10'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5297,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5298,10'
          Dst:             mod_create_ret
    - functionName:    core_csid
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5362
      functionLinenumberEnd: 5426
      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:5372,18'
          Dst:             parse_client_facts
        - Src:             'mod_core.c:5374,7'
          Dst:             pr_table_count
        - Src:             'mod_core.c:5380,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5383,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5382,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5387,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5390,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5389,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5394,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5397,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5396,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5401,7'
          Dst:             find_config
        - Src:             'mod_core.c:5417,12'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5421,12'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5425,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5426,10'
          Dst:             mod_create_ret
    - functionName:    parse_client_facts
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5301
      functionLinenumberEnd: 5359
      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:5305,11'
          Dst:             pr_str_text_to_array
        - Src:             'mod_core.c:5309,17'
          Dst:             pr_table_alloc
        - Src:             'mod_core.c:5316,18'
          Dst:             strlen
        - Src:             'mod_core.c:5322,13'
          Dst:             strchr
        - Src:             'mod_core.c:5325,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5331,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:5332,9'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:5336,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5337,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5338,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5338,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5342,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5343,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5344,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5344,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5348,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5349,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5350,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5350,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5355,7'
          Dst:             pr_log_debug
    - functionName:    reset_server_auth_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7159
      functionLinenumberEnd: 7190
      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:7162,7'
          Dst:             find_config
        - Src:             'mod_core.c:7174,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'mod_core.c:7181,11'
          Dst:             pr_module_load_authtab
        - Src:             'mod_core.c:7184,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:7184,11'
          Dst:             strerror
        - Src:             'mod_core.c:7182,9'
          Dst:             pr_log_debug
    - functionName:    core_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6984
      functionLinenumberEnd: 6986
      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:6985,3'
          Dst:             pr_fs_statcache_free
    - functionName:    feat_cmp
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6642
      functionLinenumberEnd: 6643
      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:6643,10'
          Dst:             strcasecmp
    - functionName:    handle_cross_mount_rename
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6236
      functionLinenumberEnd: 6352
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          297
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_copy_file
        - pr_fs_copy_symlink
        - pr_fsio_lstat
        - pr_fsio_unlink
        - pr_gid2str
        - pr_log_debug
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6240,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6241,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_core.c:6243,14'
          Dst:             __errno_location
        - Src:             'mod_core.c:6246,37'
          Dst:             strerror
        - Src:             'mod_core.c:6245,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6248,55'
          Dst:             strerror
        - Src:             'mod_core.c:6248,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6249,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6250,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6258,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6261,55'
          Dst:             strerror
        - Src:             'mod_core.c:6261,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6262,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6263,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6272,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6275,55'
          Dst:             strerror
        - Src:             'mod_core.c:6275,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6276,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6277,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6290,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6293,57'
          Dst:             strerror
        - Src:             'mod_core.c:6293,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6294,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6295,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6300,11'
          Dst:             pr_fsio_unlink
        - Src:             'mod_core.c:6302,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:6305,39'
          Dst:             strerror
        - Src:             'mod_core.c:6304,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6307,57'
          Dst:             strerror
        - Src:             'mod_core.c:6307,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6308,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6309,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6322,11'
          Dst:             pr_fs_copy_file
        - Src:             'mod_core.c:6323,14'
          Dst:             __errno_location
        - Src:             'mod_core.c:6326,11'
          Dst:             pr_fs_copy_symlink
        - Src:             'mod_core.c:6327,14'
          Dst:             __errno_location
        - Src:             'mod_core.c:6333,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6334,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6335,7'
          Dst:             strerror
        - Src:             'mod_core.c:6331,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6338,7'
          Dst:             strerror
        - Src:             'mod_core.c:6337,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6339,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6340,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6346,9'
          Dst:             pr_fsio_unlink
        - Src:             'mod_core.c:6348,72'
          Dst:             __errno_location
        - Src:             'mod_core.c:6348,63'
          Dst:             strerror
        - Src:             'mod_core.c:6348,5'
          Dst:             pr_log_debug
    - functionName:    core_chdir
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5468
      functionLinenumberEnd: 5690
      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:5477,9'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:5485,11'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5493,24'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5501,9'
          Dst:             pr_fsio_chdir
        - Src:             'mod_core.c:5502,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:5507,21'
          Dst:             find_config
        - Src:             'mod_core.c:5510,38'
          Dst:             strlen
        - Src:             'mod_core.c:5510,64'
          Dst:             strlen
        - Src:             'mod_core.c:5510,16'
          Dst:             palloc
        - Src:             'mod_core.c:5511,27'
          Dst:             strlen
        - Src:             'mod_core.c:5511,53'
          Dst:             strlen
        - Src:             'mod_core.c:5513,45'
          Dst:             strlen
        - Src:             'mod_core.c:5511,9'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5515,15'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5518,13'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5519,13'
          Dst:             pr_fsio_chdir
        - Src:             'mod_core.c:5509,20'
          Dst:             find_config_next
        - Src:             'mod_core.c:5526,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:5529,56'
          Dst:             strerror
        - Src:             'mod_core.c:5529,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5531,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5532,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5533,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5541,12'
          Dst:             dir_canonical_vpath
        - Src:             'mod_core.c:5542,11'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5551,24'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5559,9'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_core.c:5564,21'
          Dst:             find_config
        - Src:             'mod_core.c:5567,38'
          Dst:             strlen
        - Src:             'mod_core.c:5567,64'
          Dst:             strlen
        - Src:             'mod_core.c:5567,16'
          Dst:             palloc
        - Src:             'mod_core.c:5568,27'
          Dst:             strlen
        - Src:             'mod_core.c:5568,53'
          Dst:             strlen
        - Src:             'mod_core.c:5570,43'
          Dst:             strlen
        - Src:             'mod_core.c:5568,9'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5572,16'
          Dst:             dir_canonical_vpath
        - Src:             'mod_core.c:5573,15'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5576,13'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5577,13'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_core.c:5566,20'
          Dst:             find_config_next
        - Src:             'mod_core.c:5584,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:5587,56'
          Dst:             strerror
        - Src:             'mod_core.c:5587,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5589,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5590,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5591,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5596,25'
          Dst:             pr_fs_getcwd
        - Src:             'mod_core.c:5596,3'
          Dst:             sstrncpy
        - Src:             'mod_core.c:5597,25'
          Dst:             pr_fs_getvwd
        - Src:             'mod_core.c:5597,3'
          Dst:             sstrncpy
        - Src:             'mod_core.c:5599,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_core.c:5604,9'
          Dst:             find_config
        - Src:             'mod_core.c:5610,9'
          Dst:             find_config
        - Src:             'mod_core.c:5615,9'
          Dst:             find_config
        - Src:             'mod_core.c:5632,11'
          Dst:             find_config
        - Src:             'mod_core.c:5634,9'
          Dst:             time
        - Src:             'mod_core.c:5635,13'
          Dst:             pr_config_add_set
        - Src:             'mod_core.c:5638,19'
          Dst:             pcalloc
        - Src:             'mod_core.c:5639,22'
          Dst:             palloc
        - Src:             'mod_core.c:5647,36'
          Dst:             time
        - Src:             'mod_core.c:5652,13'
          Dst:             pr_fsio_fstat
        - Src:             'mod_core.c:5655,41'
          Dst:             __errno_location
        - Src:             'mod_core.c:5655,32'
          Dst:             strerror
        - Src:             'mod_core.c:5654,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5659,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:5662,34'
          Dst:             __errno_location
        - Src:             'mod_core.c:5662,25'
          Dst:             strerror
        - Src:             'mod_core.c:5661,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5674,13'
          Dst:             pr_display_fh
        - Src:             'mod_core.c:5676,43'
          Dst:             __errno_location
        - Src:             'mod_core.c:5676,34'
          Dst:             strerror
        - Src:             'mod_core.c:5675,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5680,13'
          Dst:             pr_display_file
        - Src:             'mod_core.c:5682,35'
          Dst:             __errno_location
        - Src:             'mod_core.c:5682,26'
          Dst:             strerror
        - Src:             'mod_core.c:5681,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5688,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5689,10'
          Dst:             mod_create_ret
    - functionName:    core_exceeded_cmd_rate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 123
      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:108,9'
          Dst:             time
    - functionName:    add_anonymous
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2825
      functionLinenumberEnd: 2861
      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:2829,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2829,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2830,3'
          Dst:             check_context
        - Src:             'mod_core.c:2830,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2830,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2830,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2830,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2835,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2835,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2835,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2839,7'
          Dst:             strchr
        - Src:             'mod_core.c:2840,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2840,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2840,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2844,7'
          Dst:             strcmp
        - Src:             'mod_core.c:2845,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2845,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2848,15'
          Dst:             strlen
        - Src:             'mod_core.c:2849,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2853,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2853,5'
          Dst:             strerror
        - Src:             'mod_core.c:2853,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2853,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2853,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2857,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2860,10'
          Dst:             mod_create_ret
    - functionName:    end_anonymous
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2863
      functionLinenumberEnd: 2879
      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:2867,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2867,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2870,3'
          Dst:             check_context
        - Src:             'mod_core.c:2870,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2870,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2870,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2870,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2872,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2875,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2878,10'
          Dst:             mod_create_ret
    - functionName:    add_class
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2881
      functionLinenumberEnd: 2896
      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:2884,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2884,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2885,3'
          Dst:             check_context
        - Src:             'mod_core.c:2885,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2885,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2885,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2885,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2887,7'
          Dst:             pr_class_open
        - Src:             'mod_core.c:2888,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2888,5'
          Dst:             strerror
        - Src:             'mod_core.c:2888,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2888,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2888,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2892,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2895,10'
          Dst:             mod_create_ret
    - functionName:    end_class
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2898
      functionLinenumberEnd: 2917
      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:2902,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2902,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2905,3'
          Dst:             check_context
        - Src:             'mod_core.c:2905,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2905,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2905,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2905,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2907,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2909,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2912,7'
          Dst:             pr_class_close
        - Src:             'mod_core.c:2913,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:2916,10'
          Dst:             mod_create_ret
    - functionName:    add_directory
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2512
      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:2432,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2432,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2433,3'
          Dst:             check_context
        - Src:             'mod_core.c:2433,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2433,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2433,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2433,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2441,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2441,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2454,9'
          Dst:             strcmp
        - Src:             'mod_core.c:2455,13'
          Dst:             pdircat
        - Src:             'mod_core.c:2460,9'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:2475,8'
          Dst:             check_context
        - Src:             'mod_core.c:2476,7'
          Dst:             find_config
        - Src:             'mod_core.c:2477,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2477,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2477,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2484,7'
          Dst:             strstr
        - Src:             'mod_core.c:2488,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2490,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2496,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:2503,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2507,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2511,10'
          Dst:             mod_create_ret
    - functionName:    end_directory
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2807
      functionLinenumberEnd: 2823
      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:2811,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2811,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2814,3'
          Dst:             check_context
        - Src:             'mod_core.c:2814,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2814,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2814,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2814,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2816,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2819,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2822,10'
          Dst:             mod_create_ret
    - functionName:    add_global
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2919
      functionLinenumberEnd: 2932
      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:2923,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2923,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2926,3'
          Dst:             check_context
        - Src:             'mod_core.c:2926,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2926,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2926,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2926,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2928,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2931,10'
          Dst:             mod_create_ret
    - functionName:    end_global
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2934
      functionLinenumberEnd: 2950
      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:2938,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2938,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2941,3'
          Dst:             check_context
        - Src:             'mod_core.c:2941,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2941,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2941,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2941,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2943,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2946,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2949,10'
          Dst:             mod_create_ret
    - functionName:    start_ifdefine
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 250
      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:200,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:200,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:208,13'
          Dst:             pr_define_exists
        - Src:             'mod_core.c:217,7'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:215,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:218,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:223,5'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:221,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:231,47'
          Dst:             pr_parser_read_line
        - Src:             'mod_core.c:233,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:235,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:238,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:246,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:246,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:249,10'
          Dst:             mod_create_ret
    - functionName:    end_ifdefine
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 257
      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:257,10'
          Dst:             mod_create_ret
    - functionName:    start_ifmodule
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 320
      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:265,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:265,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:273,18'
          Dst:             pr_module_exists
        - Src:             'mod_core.c:282,7'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:280,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:283,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:288,5'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:286,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:296,47'
          Dst:             pr_parser_read_line
        - Src:             'mod_core.c:300,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:303,39'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:306,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:309,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:316,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:316,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:319,10'
          Dst:             mod_create_ret
    - functionName:    end_ifmodule
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 333
      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:328,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:328,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:328,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:332,10'
          Dst:             mod_create_ret
    - functionName:    add_limit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2952
      functionLinenumberEnd: 3062
      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:2962,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2962,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2965,3'
          Dst:             check_context
        - Src:             'mod_core.c:2965,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2965,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2965,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2965,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2967,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2972,10'
          Dst:             make_array
        - Src:             'mod_core.c:2977,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:2978,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:2979,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:2982,41'
          Dst:             pstrdup
        - Src:             'mod_core.c:2982,21'
          Dst:             push_array
        - Src:             'mod_core.c:3000,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3003,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3006,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3009,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3012,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3015,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3018,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3021,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3027,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3027,17'
          Dst:             push_array
        - Src:             'mod_core.c:3031,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3031,17'
          Dst:             push_array
        - Src:             'mod_core.c:3035,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3035,17'
          Dst:             push_array
        - Src:             'mod_core.c:3039,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3039,17'
          Dst:             push_array
        - Src:             'mod_core.c:3043,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3043,17'
          Dst:             push_array
        - Src:             'mod_core.c:3047,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3047,17'
          Dst:             push_array
        - Src:             'mod_core.c:3051,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3051,17'
          Dst:             push_array
        - Src:             'mod_core.c:3055,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3055,17'
          Dst:             push_array
        - Src:             'mod_core.c:3061,10'
          Dst:             mod_create_ret
    - functionName:    end_limit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3362
      functionLinenumberEnd: 3378
      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:3366,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3366,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3369,3'
          Dst:             check_context
        - Src:             'mod_core.c:3369,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3369,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3369,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3369,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3371,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:3374,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3377,10'
          Dst:             mod_create_ret
    - functionName:    add_virtualhost
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3450
      functionLinenumberEnd: 3559
      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:3458,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3458,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3460,3'
          Dst:             check_context
        - Src:             'mod_core.c:3460,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3460,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3460,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3460,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3463,7'
          Dst:             pr_parser_server_ctxt_open
        - Src:             'mod_core.c:3465,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3465,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3474,10'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3476,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3476,5'
          Dst:             strerror
        - Src:             'mod_core.c:3476,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3476,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3476,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3483,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:3484,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:3485,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3488,16'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3498,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3501,11'
          Dst:             strcmp
        - Src:             'mod_core.c:3505,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3520,14'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3522,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:3522,9'
          Dst:             strerror
        - Src:             'mod_core.c:3522,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3522,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3522,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3529,11'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:3530,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:3531,9'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3534,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3535,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3545,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3548,15'
          Dst:             strcmp
        - Src:             'mod_core.c:3552,11'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3558,10'
          Dst:             mod_create_ret
    - functionName:    end_virtualhost
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3561
      functionLinenumberEnd: 3651
      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:3568,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3568,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3571,3'
          Dst:             check_context
        - Src:             'mod_core.c:3571,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3571,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3571,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3571,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3577,15'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'mod_core.c:3583,10'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3588,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3609,13'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'mod_core.c:3611,23'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3616,11'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3619,20'
          Dst:             pr_netaddr_cmp
        - Src:             'mod_core.c:3627,15'
          Dst:             find_config
        - Src:             'mod_core.c:3632,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3629,13'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3635,17'
          Dst:             xaset_remove
        - Src:             'mod_core.c:3636,15'
          Dst:             destroy_pool
        - Src:             'mod_core.c:3646,7'
          Dst:             pr_parser_server_ctxt_close
        - Src:             'mod_core.c:3647,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3647,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3650,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdeny
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3216
      functionLinenumberEnd: 3304
      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:3223,3'
          Dst:             check_context
        - Src:             'mod_core.c:3223,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3223,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3223,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3223,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3226,10'
          Dst:             make_array
        - Src:             'mod_core.c:3230,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3237,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3243,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3244,10'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3245,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:3245,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3248,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3249,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3251,9'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:3250,26'
          Dst:             push_array
        - Src:             'mod_core.c:3261,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:3264,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:3268,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3269,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3275,15'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:3277,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:3277,11'
          Dst:             strerror
        - Src:             'mod_core.c:3277,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3277,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3277,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3282,11'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:3281,9'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:3284,28'
          Dst:             push_array
        - Src:             'mod_core.c:3290,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3290,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3290,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3294,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:3303,10'
          Dst:             mod_create_ret
    - functionName:    set_allowall
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3322
      functionLinenumberEnd: 3336
      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:3326,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3326,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3329,3'
          Dst:             check_context
        - Src:             'mod_core.c:3329,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3329,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3329,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3329,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3331,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3332,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3335,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdenyusergroupclass
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3102
      functionLinenumberEnd: 3214
      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:3109,3'
          Dst:             check_context
        - Src:             'mod_core.c:3109,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3109,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3109,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3109,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3112,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3112,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3118,7'
          Dst:             strcmp
        - 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:3133,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3138,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3143,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3149,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3149,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3152,13'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:3154,13'
          Dst:             pr_regexp_compile_posix
        - Src:             'mod_core.c:3158,9'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:3159,9'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:3161,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3161,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3161,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3165,11'
          Dst:             add_config_param
        - Src:             'mod_core.c:3166,20'
          Dst:             pcalloc
        - Src:             'mod_core.c:3171,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3187,9'
          Dst:             pr_expr_create
        - Src:             'mod_core.c:3189,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3189,5'
          Dst:             strerror
        - Src:             'mod_core.c:3189,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3189,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3189,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3193,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3196,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:3198,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3204,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:3206,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:3213,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdenyfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2240
      functionLinenumberEnd: 2300
      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:2248,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2248,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2251,3'
          Dst:             check_context
        - Src:             'mod_core.c:2251,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2251,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2251,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2251,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2262,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_core.c:2264,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2264,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2264,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2269,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2269,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2269,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2276,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2278,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2280,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2284,5'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2285,5'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2287,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2287,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2287,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2291,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2293,10'
          Dst:             mod_create_ret
    - functionName:    set_allowforeignaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2350
      functionLinenumberEnd: 2371
      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:2355,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2355,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2356,3'
          Dst:             check_context
        - Src:             'mod_core.c:2356,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2356,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2356,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2356,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2358,24'
          Dst:             get_boolean
        - Src:             'mod_core.c:2364,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2365,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2367,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2370,10'
          Dst:             mod_create_ret
    - functionName:    set_allowoverride
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2755
      functionLinenumberEnd: 2805
      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:2768,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2768,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2768,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2772,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2772,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2773,3'
          Dst:             check_context
        - Src:             'mod_core.c:2773,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2773,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2773,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2773,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2775,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:2777,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2777,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2797,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2798,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2800,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2804,10'
          Dst:             mod_create_ret
    - functionName:    set_authorder
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3338
      functionLinenumberEnd: 3360
      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:3343,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3343,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3344,3'
          Dst:             check_context
        - Src:             'mod_core.c:3344,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3344,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3347,7'
          Dst:             find_config
        - Src:             'mod_core.c:3348,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3348,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3351,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3352,17'
          Dst:             make_array
        - Src:             'mod_core.c:3355,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:3355,17'
          Dst:             push_array
        - Src:             'mod_core.c:3359,10'
          Dst:             mod_create_ret
    - functionName:    set_cdpath
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2415
      functionLinenumberEnd: 2425
      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:2418,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2418,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2419,3'
          Dst:             check_context
        - Src:             'mod_core.c:2419,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2419,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2419,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2419,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2421,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2424,10'
          Dst:             mod_create_ret
    - functionName:    set_commandbuffersize
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2373
      functionLinenumberEnd: 2413
      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:2380,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2380,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2383,3'
          Dst:             check_context
        - Src:             'mod_core.c:2383,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2383,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2383,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2383,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2389,7'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_core.c:2390,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2390,5'
          Dst:             strerror
        - Src:             'mod_core.c:2390,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2390,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2390,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2397,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:2401,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2401,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2401,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2408,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2409,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2412,10'
          Dst:             mod_create_ret
    - functionName:    set_debuglevel
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 466
      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:448,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:448,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:449,3'
          Dst:             check_context
        - Src:             'mod_core.c:449,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:449,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:449,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:449,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:452,16'
          Dst:             strtol
        - Src:             'mod_core.c:455,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:455,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:459,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:459,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:461,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:462,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:465,10'
          Dst:             mod_create_ret
    - functionName:    set_defaultaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 592
      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:475,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:475,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:478,3'
          Dst:             check_context
        - Src:             'mod_core.c:478,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:478,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:478,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:478,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:481,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:483,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:483,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:483,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:490,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:491,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:492,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:495,45'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:506,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:509,11'
          Dst:             strcmp
        - Src:             'mod_core.c:514,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:517,17'
          Dst:             pcalloc
        - Src:             'mod_core.c:518,13'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:522,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:528,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:538,32'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:545,14'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:548,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:548,9'
          Dst:             strerror
        - Src:             'mod_core.c:548,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:548,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:548,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:552,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:553,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:558,11'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:559,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:560,9'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:563,19'
          Dst:             pstrcat
        - Src:             'mod_core.c:573,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:576,15'
          Dst:             strcmp
        - Src:             'mod_core.c:580,11'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:585,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:588,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:591,10'
          Dst:             mod_create_ret
    - functionName:    set_defaultserver
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 976
      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:952,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:952,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:953,3'
          Dst:             check_context
        - Src:             'mod_core.c:953,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:953,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:953,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:953,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:955,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:957,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:957,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:961,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:966,9'
          Dst:             find_config
        - Src:             'mod_core.c:967,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:967,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:971,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:972,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:975,10'
          Dst:             mod_create_ret
    - functionName:    set_deferwelcome
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6894
      functionLinenumberEnd: 6911
      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:6898,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6898,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6899,3'
          Dst:             check_context
        - Src:             'mod_core.c:6899,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:6899,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6899,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6899,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6901,19'
          Dst:             get_boolean
        - Src:             'mod_core.c:6903,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:6903,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6906,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:6907,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:6910,10'
          Dst:             mod_create_ret
    - functionName:    set_define
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 355
      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:347,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:347,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:353,3'
          Dst:             pr_define_add
        - Src:             'mod_core.c:354,10'
          Dst:             mod_create_ret
    - functionName:    set_denyall
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3306
      functionLinenumberEnd: 3320
      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:3310,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3310,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3313,3'
          Dst:             check_context
        - Src:             'mod_core.c:3313,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3313,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3313,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3313,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3315,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3316,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3319,10'
          Dst:             mod_create_ret
    - functionName:    set_displaychdir
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3400
      functionLinenumberEnd: 3428
      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:3406,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3406,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3409,3'
          Dst:             check_context
        - Src:             'mod_core.c:3409,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3409,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3409,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3409,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3412,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:3414,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:3414,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3421,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3422,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:3423,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3427,10'
          Dst:             mod_create_ret
    - functionName:    set_displayconnect
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3430
      functionLinenumberEnd: 3436
      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:3431,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3431,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3432,3'
          Dst:             check_context
        - Src:             'mod_core.c:3432,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3432,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3432,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3432,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3434,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3435,10'
          Dst:             mod_create_ret
    - functionName:    set_displayquit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3438
      functionLinenumberEnd: 3448
      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:3441,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3441,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3442,3'
          Dst:             check_context
        - Src:             'mod_core.c:3442,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3442,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3442,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3442,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3444,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3447,10'
          Dst:             mod_create_ret
    - functionName:    add_from
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1474
      functionLinenumberEnd: 1546
      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:1478,3'
          Dst:             check_context
        - Src:             'mod_core.c:1478,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1478,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1478,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1478,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1488,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1489,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1490,26'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:1492,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1492,9'
          Dst:             strerror
        - Src:             'mod_core.c:1492,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1492,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1492,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1497,9'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:1496,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:1499,11'
          Dst:             pr_class_add_acl
        - Src:             'mod_core.c:1500,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1500,9'
          Dst:             strerror
        - Src:             'mod_core.c:1500,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1500,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1500,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1514,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:1516,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:1520,9'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:1522,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1523,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1528,15'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:1530,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:1530,11'
          Dst:             strerror
        - Src:             'mod_core.c:1530,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1530,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1530,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1535,11'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:1534,9'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:1537,13'
          Dst:             pr_class_add_acl
        - Src:             'mod_core.c:1538,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:1538,11'
          Dst:             strerror
        - Src:             'mod_core.c:1538,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1538,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1538,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1545,10'
          Dst:             mod_create_ret
    - functionName:    set_fscachepolicy
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1549
      functionLinenumberEnd: 1615
      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:1555,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1555,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1561,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:1563,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1563,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1566,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1567,18'
          Dst:             palloc
        - Src:             'mod_core.c:1569,18'
          Dst:             palloc
        - Src:             'mod_core.c:1571,18'
          Dst:             palloc
        - Src:             'mod_core.c:1574,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1577,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1578,16'
          Dst:             palloc
        - Src:             'mod_core.c:1580,16'
          Dst:             palloc
        - Src:             'mod_core.c:1582,16'
          Dst:             palloc
        - Src:             'mod_core.c:1586,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:1590,14'
          Dst:             atoi
        - Src:             'mod_core.c:1592,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1592,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1597,16'
          Dst:             strncasecmp
        - Src:             'mod_core.c:1601,17'
          Dst:             atoi
        - Src:             'mod_core.c:1603,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1603,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1609,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1609,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1609,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1614,10'
          Dst:             mod_create_ret
    - functionName:    set_fsoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1618
      functionLinenumberEnd: 1646
      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:1625,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1625,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1628,3'
          Dst:             check_context
        - Src:             'mod_core.c:1628,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1628,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1628,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1628,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1630,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1633,9'
          Dst:             strcmp
        - Src:             'mod_core.c:1637,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1637,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1637,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1642,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1645,10'
          Dst:             mod_create_ret
    - functionName:    set_group
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1648
      functionLinenumberEnd: 1670
      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:1651,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1651,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1652,3'
          Dst:             check_context
        - Src:             'mod_core.c:1652,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1652,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1652,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1652,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1655,11'
          Dst:             pr_auth_getgrnam
        - Src:             'mod_core.c:1657,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1657,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1657,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1663,21'
          Dst:             add_config_param
        - Src:             'mod_core.c:1664,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1668,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1669,10'
          Dst:             mod_create_ret
    - functionName:    add_groupowner
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2731
      functionLinenumberEnd: 2741
      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:2734,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2734,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2735,3'
          Dst:             check_context
        - Src:             'mod_core.c:2735,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2735,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2735,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2735,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2737,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2740,10'
          Dst:             mod_create_ret
    - functionName:    set_hidefiles
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2514
      functionLinenumberEnd: 2663
      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:2529,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2529,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2532,3'
          Dst:             check_context
        - Src:             'mod_core.c:2532,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2532,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2532,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2532,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2554,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2562,11'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2564,11'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2568,7'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2569,7'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2571,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2571,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2571,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2581,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2582,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2583,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2584,14'
          Dst:             pstrcat
        - Src:             'mod_core.c:2584,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2590,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:2591,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2593,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2595,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2607,11'
          Dst:             pr_expr_create
        - Src:             'mod_core.c:2609,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:2609,7'
          Dst:             strerror
        - Src:             'mod_core.c:2609,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2609,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2609,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2613,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:2620,15'
          Dst:             pcalloc
        - Src:             'mod_core.c:2628,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2632,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2636,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2640,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:2645,19'
          Dst:             pstrdup
        - Src:             'mod_core.c:2656,10'
          Dst:             mod_create_ret
    - functionName:    set_hidegroup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2708
      functionLinenumberEnd: 2729
      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:2713,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2713,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2714,3'
          Dst:             check_context
        - Src:             'mod_core.c:2714,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2714,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2714,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2714,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2722,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2723,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2724,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2728,10'
          Dst:             mod_create_ret
    - functionName:    set_hidenoaccess
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2665
      functionLinenumberEnd: 2683
      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:2669,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2669,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2670,3'
          Dst:             check_context
        - Src:             'mod_core.c:2670,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2670,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2670,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2670,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2672,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:2674,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2674,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2677,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2678,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2682,10'
          Dst:             mod_create_ret
    - functionName:    set_hideuser
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2685
      functionLinenumberEnd: 2706
      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:2690,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2690,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2691,3'
          Dst:             check_context
        - Src:             'mod_core.c:2691,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2691,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2691,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2691,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2699,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2700,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2701,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2705,10'
          Dst:             mod_create_ret
    - functionName:    set_ignorehidden
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3380
      functionLinenumberEnd: 3397
      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:3384,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3384,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3385,3'
          Dst:             check_context
        - Src:             'mod_core.c:3385,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3385,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3385,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3385,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3387,19'
          Dst:             get_boolean
        - Src:             'mod_core.c:3389,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3389,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3392,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3393,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3396,10'
          Dst:             mod_create_ret
    - functionName:    set_include
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 410
      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:361,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:361,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:380,3'
          Dst:             check_context
        - Src:             'mod_core.c:380,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:380,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:380,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:380,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:384,3'
          Dst:             pr_privs_root
        - Src:             'mod_core.c:385,9'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:386,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_core.c:389,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:389,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:389,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:393,3'
          Dst:             pr_privs_root
        - Src:             'mod_core.c:394,9'
          Dst:             parse_config_path
        - Src:             'mod_core.c:395,12'
          Dst:             __errno_location
        - Src:             'mod_core.c:396,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_core.c:401,32'
          Dst:             strerror
        - Src:             'mod_core.c:400,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:404,7'
          Dst:             strerror
        - Src:             'mod_core.c:404,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:404,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:404,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:409,10'
          Dst:             mod_create_ret
    - functionName:    set_includeoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 441
      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:418,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:418,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:421,3'
          Dst:             check_context
        - Src:             'mod_core.c:421,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:421,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:421,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:421,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:424,9'
          Dst:             strcmp
        - Src:             'mod_core.c:427,16'
          Dst:             strcmp
        - Src:             'mod_core.c:430,16'
          Dst:             strcmp
        - Src:             'mod_core.c:434,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:434,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:434,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:439,10'
          Dst:             pr_parser_set_include_opts
        - Src:             'mod_core.c:440,10'
          Dst:             mod_create_ret
    - functionName:    set_masqueradeaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 1014
      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:985,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:985,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:986,3'
          Dst:             check_context
        - Src:             'mod_core.c:986,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:986,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:986,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:986,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:992,13'
          Dst:             strlen
        - Src:             'mod_core.c:995,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:995,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:998,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:1004,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1005,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1005,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1005,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1010,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1011,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:1013,10'
          Dst:             mod_create_ret
    - functionName:    set_maxcommandrate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1040
      functionLinenumberEnd: 1080
      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:1048,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1048,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1051,3'
          Dst:             check_context
        - Src:             'mod_core.c:1051,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1051,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1051,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1051,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1053,13'
          Dst:             strtol
        - Src:             'mod_core.c:1056,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1056,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1060,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1060,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1065,24'
          Dst:             atoi
        - Src:             'mod_core.c:1068,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1068,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1068,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1073,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1074,16'
          Dst:             palloc
        - Src:             'mod_core.c:1076,16'
          Dst:             palloc
        - Src:             'mod_core.c:1079,10'
          Dst:             mod_create_ret
    - functionName:    set_maxconnrate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1117
      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:1090,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1090,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1092,3'
          Dst:             check_context
        - Src:             'mod_core.c:1092,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1092,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1092,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1092,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1094,14'
          Dst:             strtol
        - Src:             'mod_core.c:1097,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1097,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1101,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1101,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1108,28'
          Dst:             atoi
        - Src:             'mod_core.c:1111,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1111,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1111,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1116,10'
          Dst:             mod_create_ret
    - functionName:    set_maxinstances
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1037
      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:1020,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1020,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1021,3'
          Dst:             check_context
        - Src:             'mod_core.c:1021,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1021,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1021,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1021,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1023,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1027,21'
          Dst:             strtol
        - Src:             'mod_core.c:1031,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1031,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1036,10'
          Dst:             mod_create_ret
    - functionName:    set_multilinerfc2228
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1337
      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:1334,3'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:1337,10'
          Dst:             mod_create_ret
    - functionName:    set_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3064
      functionLinenumberEnd: 3100
      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:3071,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3071,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3073,3'
          Dst:             check_context
        - Src:             'mod_core.c:3073,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3073,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3073,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3073,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3080,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3084,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3087,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3091,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3091,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3091,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3095,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3096,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3099,10'
          Dst:             mod_create_ret
    - functionName:    set_passiveports
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2302
      functionLinenumberEnd: 2339
      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:2306,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2306,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2307,3'
          Dst:             check_context
        - Src:             'mod_core.c:2307,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2307,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2307,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2307,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2309,19'
          Dst:             atoi
        - Src:             'mod_core.c:2310,19'
          Dst:             atoi
        - Src:             'mod_core.c:2315,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2315,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2320,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2320,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2325,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2325,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2329,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2329,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2332,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2333,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2335,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2338,10'
          Dst:             mod_create_ret
    - functionName:    set_pathallowfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2341
      functionLinenumberEnd: 2342
      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:2342,10'
          Dst:             set_regex
    - functionName:    set_pathdenyfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2345
      functionLinenumberEnd: 2346
      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:2346,10'
          Dst:             set_regex
    - functionName:    set_pidfile
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 875
      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:866,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:866,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:867,3'
          Dst:             check_context
        - Src:             'mod_core.c:867,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:867,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:867,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:867,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:869,7'
          Dst:             pr_pidfile_set
        - Src:             'mod_core.c:870,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:870,5'
          Dst:             strerror
        - Src:             'mod_core.c:870,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:870,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:870,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:874,10'
          Dst:             mod_create_ret
    - functionName:    set_port
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 863
      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:838,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:838,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:839,3'
          Dst:             check_context
        - Src:             'mod_core.c:839,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:839,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:839,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:839,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:841,10'
          Dst:             atoi
        - Src:             'mod_core.c:844,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:844,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:847,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:848,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:862,10'
          Dst:             mod_create_ret
    - functionName:    set_processtitles
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1969
      functionLinenumberEnd: 1980
      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:1970,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1970,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1971,3'
          Dst:             check_context
        - Src:             'mod_core.c:1971,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1971,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1971,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1971,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1973,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1974,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1975,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1975,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1978,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1979,10'
          Dst:             mod_create_ret
    - functionName:    set_protocols
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1983
      functionLinenumberEnd: 2005
      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:1988,3'
          Dst:             check_context
        - Src:             'mod_core.c:1988,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1988,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1988,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1988,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1991,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1991,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1994,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1996,10'
          Dst:             make_array
        - Src:             'mod_core.c:1998,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:1998,17'
          Dst:             push_array
        - Src:             'mod_core.c:2004,10'
          Dst:             mod_create_ret
    - functionName:    set_regexoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2009
      functionLinenumberEnd: 2086
      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:2017,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2017,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2023,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2023,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2026,3'
          Dst:             check_context
        - Src:             'mod_core.c:2026,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2026,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2026,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2026,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2033,9'
          Dst:             strcmp
        - Src:             'mod_core.c:2036,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2037,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2038,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2039,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2039,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2039,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2046,16'
          Dst:             strcmp
        - Src:             'mod_core.c:2049,21'
          Dst:             strtoul
        - Src:             'mod_core.c:2051,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2051,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2051,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2058,16'
          Dst:             strcmp
        - Src:             'mod_core.c:2061,31'
          Dst:             strtoul
        - Src:             'mod_core.c:2063,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2063,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2063,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2071,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2071,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2071,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2076,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2077,16'
          Dst:             palloc
        - Src:             'mod_core.c:2079,16'
          Dst:             palloc
        - Src:             'mod_core.c:2082,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:2085,10'
          Dst:             mod_create_ret
    - functionName:    set_satisfy
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 741
      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:721,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:721,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:722,3'
          Dst:             check_context
        - Src:             'mod_core.c:722,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:722,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:722,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:722,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:724,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:727,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:731,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:731,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:731,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:735,7'
          Dst:             pr_class_set_satisfy
        - Src:             'mod_core.c:736,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:736,5'
          Dst:             strerror
        - Src:             'mod_core.c:736,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:736,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:736,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:740,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardfile
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 754
      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:745,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:745,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:746,3'
          Dst:             check_context
        - Src:             'mod_core.c:746,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:746,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:746,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:746,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:748,7'
          Dst:             pr_set_scoreboard
        - Src:             'mod_core.c:749,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:749,5'
          Dst:             strerror
        - Src:             'mod_core.c:749,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:749,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:749,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:753,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardmutex
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 767
      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:758,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:758,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:759,3'
          Dst:             check_context
        - Src:             'mod_core.c:759,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:759,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:759,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:759,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:761,7'
          Dst:             pr_set_scoreboard_mutex
        - Src:             'mod_core.c:762,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:762,5'
          Dst:             strerror
        - Src:             'mod_core.c:762,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:762,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:762,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:766,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 797
      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:776,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:776,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:779,3'
          Dst:             check_context
        - Src:             'mod_core.c:779,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:779,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:779,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:779,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:781,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:784,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:788,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:788,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:788,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:793,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:796,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardscrub
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 832
      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:804,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:804,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:805,3'
          Dst:             check_context
        - Src:             'mod_core.c:805,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:805,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:805,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:805,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:807,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:812,13'
          Dst:             atoi
        - Src:             'mod_core.c:814,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:814,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:819,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:820,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:822,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:826,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:827,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:831,10'
          Dst:             mod_create_ret
    - functionName:    set_serveradmin
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 663
      functionLinenumberEnd: 671
      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:666,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:666,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:667,3'
          Dst:             check_context
        - Src:             'mod_core.c:667,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:667,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:667,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:667,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:669,20'
          Dst:             pstrdup
        - Src:             'mod_core.c:670,10'
          Dst:             mod_create_ret
    - functionName:    set_serveralias
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 912
      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:902,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:902,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:905,3'
          Dst:             check_context
        - Src:             'mod_core.c:905,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:905,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:905,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:905,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:908,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:911,10'
          Dst:             mod_create_ret
    - functionName:    set_serverident
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 945
      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:921,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:921,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:924,3'
          Dst:             check_context
        - Src:             'mod_core.c:924,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:924,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:924,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:924,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:926,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:928,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:928,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:933,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:934,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:936,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:939,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:940,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:944,10'
          Dst:             mod_create_ret
    - functionName:    set_servername
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 602
      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:597,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:597,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:598,3'
          Dst:             check_context
        - Src:             'mod_core.c:598,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:598,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:598,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:598,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:600,19'
          Dst:             pstrdup
        - Src:             'mod_core.c:601,10'
          Dst:             mod_create_ret
    - functionName:    set_servertype
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 619
      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:605,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:605,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:606,3'
          Dst:             check_context
        - Src:             'mod_core.c:606,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:606,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:606,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:606,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:608,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:611,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:615,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:615,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:618,10'
          Dst:             mod_create_ret
    - functionName:    set_setenv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 649
      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:624,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:624,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:625,3'
          Dst:             check_context
        - Src:             'mod_core.c:625,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:625,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:625,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:625,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:627,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:639,9'
          Dst:             pr_env_set
        - Src:             'mod_core.c:641,64'
          Dst:             __errno_location
        - Src:             'mod_core.c:641,55'
          Dst:             strerror
        - Src:             'mod_core.c:640,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:644,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:648,10'
          Dst:             mod_create_ret
    - functionName:    set_socketbindtight
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1170
      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:1160,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1160,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1161,3'
          Dst:             check_context
        - Src:             'mod_core.c:1161,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1161,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1161,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1161,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1163,16'
          Dst:             get_boolean
        - Src:             'mod_core.c:1165,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1165,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1169,10'
          Dst:             mod_create_ret
    - functionName:    set_socketoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1331
      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:1180,4'
          Dst:             pstrcat
        - Src:             'mod_core.c:1180,4'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1183,3'
          Dst:             check_context
        - Src:             'mod_core.c:1183,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1183,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1183,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1183,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1188,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1189,15'
          Dst:             atoi
        - Src:             'mod_core.c:1196,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1196,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1201,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1202,15'
          Dst:             atoi
        - Src:             'mod_core.c:1205,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1205,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1211,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1212,15'
          Dst:             atoi
        - Src:             'mod_core.c:1215,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1215,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1225,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1228,11'
          Dst:             get_boolean
        - Src:             'mod_core.c:1237,15'
          Dst:             strchr
        - Src:             'mod_core.c:1239,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1239,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1239,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1244,16'
          Dst:             atoi
        - Src:             'mod_core.c:1247,16'
          Dst:             strchr
        - Src:             'mod_core.c:1250,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1250,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1250,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1255,17'
          Dst:             atoi
        - Src:             'mod_core.c:1258,17'
          Dst:             atoi
        - Src:             'mod_core.c:1264,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1266,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1266,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1266,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1275,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1277,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1277,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1277,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1286,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1288,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1288,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1288,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1311,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1314,11'
          Dst:             get_boolean
        - Src:             'mod_core.c:1316,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1316,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1325,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1325,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1325,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1330,10'
          Dst:             mod_create_ret
    - functionName:    set_syslogfacility
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2088
      functionLinenumberEnd: 2156
      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:2128,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:2119,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2119,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2120,3'
          Dst:             check_context
        - Src:             'mod_core.c:2120,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2120,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2120,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2120,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2123,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2124,7'
          Dst:             log_closesyslog
        - Src:             'mod_core.c:2125,7'
          Dst:             log_setfacility
        - Src:             'mod_core.c:2127,7'
          Dst:             pr_signals_block
        - Src:             'mod_core.c:2128,15'
          Dst:             log_opensyslog
        - Src:             'mod_core.c:2130,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2131,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:2131,11'
          Dst:             strerror
        - Src:             'mod_core.c:2131,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2131,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2131,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2136,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2137,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2137,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2142,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2143,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2143,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2149,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2151,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2155,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2155,3'
          Dst:             mod_create_ret
    - functionName:    set_sysloglevel
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 895
      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:881,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:881,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:882,3'
          Dst:             check_context
        - Src:             'mod_core.c:882,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:882,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:882,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:882,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:884,11'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_core.c:886,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:886,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:890,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:891,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:894,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutidle
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1119
      functionLinenumberEnd: 1137
      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:1123,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1123,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1124,3'
          Dst:             check_context
        - Src:             'mod_core.c:1124,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1124,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1124,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1124,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1126,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_core.c:1127,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1127,5'
          Dst:             strerror
        - Src:             'mod_core.c:1127,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1127,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1127,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1131,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1132,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1136,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutlinger
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1156
      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:1143,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1143,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1144,3'
          Dst:             check_context
        - Src:             'mod_core.c:1144,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1144,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1144,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1144,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1146,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_core.c:1147,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1147,5'
          Dst:             strerror
        - Src:             'mod_core.c:1147,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1147,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1147,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1151,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1152,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1155,10'
          Dst:             mod_create_ret
    - functionName:    set_timesgmt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2158
      functionLinenumberEnd: 2176
      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:2162,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2162,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2163,3'
          Dst:             check_context
        - Src:             'mod_core.c:2163,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2163,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2163,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2163,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2165,15'
          Dst:             get_boolean
        - Src:             'mod_core.c:2167,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2167,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2170,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2171,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2175,10'
          Dst:             mod_create_ret
    - functionName:    set_trace
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1768
      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:1680,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1680,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1682,3'
          Dst:             check_context
        - Src:             'mod_core.c:1682,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1682,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1682,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1682,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1691,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1694,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1694,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1715,13'
          Dst:             strchr
        - Src:             'mod_core.c:1717,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1717,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1717,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1724,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:1726,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1726,9'
          Dst:             strerror
        - Src:             'mod_core.c:1726,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1726,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1726,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1730,11'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:1731,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1731,9'
          Dst:             strerror
        - Src:             'mod_core.c:1731,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1731,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1731,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1746,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1748,15'
          Dst:             pcalloc
        - Src:             'mod_core.c:1753,13'
          Dst:             strchr
        - Src:             'mod_core.c:1755,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1755,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1755,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1759,22'
          Dst:             pstrdup
        - Src:             'mod_core.c:1763,10'
          Dst:             mod_create_ret
    - functionName:    set_tracelog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1771
      functionLinenumberEnd: 1799
      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:1774,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1774,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1777,3'
          Dst:             check_context
        - Src:             'mod_core.c:1777,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1777,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1777,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1777,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1779,7'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:1780,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1780,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1783,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:1784,7'
          Dst:             pr_trace_set_file
        - Src:             'mod_core.c:1785,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1786,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1786,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1786,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1790,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1790,5'
          Dst:             strerror
        - Src:             'mod_core.c:1790,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1790,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1790,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1794,10'
          Dst:             mod_create_ret
    - functionName:    set_traceoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1802
      functionLinenumberEnd: 1892
      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:1830,7'
          Branch Sides:    []
        - Branch String:   'mod_core.c:1841,7'
          Branch Sides:    []
        - Branch String:   'mod_core.c:1852,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:1810,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1810,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1813,3'
          Dst:             check_context
        - Src:             'mod_core.c:1813,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1813,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1813,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1813,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1823,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1823,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1823,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1829,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1840,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1851,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1863,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1863,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1863,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1868,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1869,16'
          Dst:             palloc
        - Src:             'mod_core.c:1880,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:1882,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:1882,44'
          Dst:             strerror
        - Src:             'mod_core.c:1881,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:1886,10'
          Dst:             mod_create_ret
    - functionName:    add_transferlog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 661
      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:654,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:654,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:655,3'
          Dst:             check_context
        - Src:             'mod_core.c:655,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:655,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:655,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:655,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:657,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:660,10'
          Dst:             mod_create_ret
    - functionName:    set_umask
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1894
      functionLinenumberEnd: 1936
      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:1899,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1899,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1900,3'
          Dst:             check_context
        - Src:             'mod_core.c:1900,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1900,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1900,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1900,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1903,24'
          Dst:             strtol
        - Src:             'mod_core.c:1906,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1906,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1906,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1910,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1911,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1922,26'
          Dst:             strtol
        - Src:             'mod_core.c:1925,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1925,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1925,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1929,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1930,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1935,10'
          Dst:             mod_create_ret
    - functionName:    set_unsetenv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1938
      functionLinenumberEnd: 1966
      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:1941,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1941,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1942,3'
          Dst:             check_context
        - Src:             'mod_core.c:1942,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1942,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1942,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1942,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1944,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1956,9'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:1958,64'
          Dst:             __errno_location
        - Src:             'mod_core.c:1958,55'
          Dst:             strerror
        - Src:             'mod_core.c:1957,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:1961,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:1965,10'
          Dst:             mod_create_ret
    - functionName:    set_useipv6
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 699
      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:677,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:677,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:678,3'
          Dst:             check_context
        - Src:             'mod_core.c:678,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:678,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:678,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:678,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:680,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:682,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:682,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:686,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:687,5'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'mod_core.c:691,5'
          Dst:             pr_netaddr_enable_ipv6
        - Src:             'mod_core.c:698,10'
          Dst:             mod_create_ret
    - functionName:    set_usereversedns
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 716
      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:704,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:704,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:705,3'
          Dst:             check_context
        - Src:             'mod_core.c:705,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:705,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:705,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:705,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:707,21'
          Dst:             get_boolean
        - Src:             'mod_core.c:709,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:709,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:713,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'mod_core.c:715,10'
          Dst:             mod_create_ret
    - functionName:    set_user
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1472
      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:1449,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1449,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1450,3'
          Dst:             check_context
        - Src:             'mod_core.c:1450,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1450,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1450,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1450,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1457,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_core.c:1459,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1459,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1459,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1465,21'
          Dst:             add_config_param
        - Src:             'mod_core.c:1466,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1470,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1471,10'
          Dst:             mod_create_ret
    - functionName:    add_userowner
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2743
      functionLinenumberEnd: 2753
      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:2746,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2746,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2747,3'
          Dst:             check_context
        - Src:             'mod_core.c:2747,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2747,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2747,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2747,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2749,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2752,10'
          Dst:             mod_create_ret
    - functionName:    set_tcpbacklog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1340
      functionLinenumberEnd: 1354
      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:1343,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1343,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1344,3'
          Dst:             check_context
        - Src:             'mod_core.c:1344,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1344,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1346,13'
          Dst:             atoi
        - Src:             'mod_core.c:1349,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1349,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1353,10'
          Dst:             mod_create_ret
    - functionName:    set_tcpnodelay
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1444
      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:1360,3'
          Dst:             check_context
        - Src:             'mod_core.c:1360,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1360,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1360,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1360,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1363,24'
          Dst:             get_boolean
        - Src:             'mod_core.c:1365,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1365,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1374,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1375,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1376,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1378,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1378,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1383,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1384,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1386,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1386,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1392,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1392,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1392,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1397,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1398,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1399,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1401,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1401,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1404,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1405,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1407,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1407,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1411,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1411,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1411,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1415,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1416,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1417,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1419,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1419,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1422,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1423,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1425,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1425,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1429,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1429,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1429,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1434,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1434,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1437,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1438,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1440,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1443,10'
          Dst:             mod_create_ret
    - functionName:    set_regex
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2178
      functionLinenumberEnd: 2238
      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:2186,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2186,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2189,3'
          Dst:             check_context
        - Src:             'mod_core.c:2189,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2189,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2189,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2189,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2200,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_core.c:2202,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2202,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2202,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2207,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2207,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2207,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2214,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2216,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2218,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2222,5'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2223,5'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2225,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2225,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2225,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2229,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2231,10'
          Dst:             mod_create_ret
    - functionName:    core_chmod
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5451
      functionLinenumberEnd: 5466
      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:5455,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5456,8'
          Dst:             dir_check
        - Src:             'mod_core.c:5457,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5458,5'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5460,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5463,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5465,10'
          Dst:             pr_fsio_chmod
    - functionName:    core_chgrp
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5434
      functionLinenumberEnd: 5449
      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:5438,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5439,8'
          Dst:             dir_check
        - Src:             'mod_core.c:5440,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5441,5'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5443,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5446,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5448,10'
          Dst:             pr_fsio_lchown
    - functionName:    auth_unix_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1643
      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:1632,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_unix.c:1632,3'
          Dst:             auth_unix_exit_ev
        - Src:             'mod_auth_unix.c:1633,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_unix.c:1633,3'
          Dst:             auth_unix_sess_reinit_ev
        - Src:             'mod_auth_unix.c:1638,9'
          Dst:             auth_unix_sess_init
        - Src:             'mod_auth_unix.c:1640,5'
          Dst:             pr_session_disconnect
    - functionName:    auth_unix_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1622
      functionLinenumberEnd: 1625
      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:1623,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth_unix.c:1624,3'
          Dst:             pr_auth_endgrent
    - functionName:    auth_unix_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1674
      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:1660,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_unix.c:1660,3'
          Dst:             auth_unix_exit_ev
        - Src:             'mod_auth_unix.c:1661,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_unix.c:1661,3'
          Dst:             auth_unix_sess_reinit_ev
        - Src:             'mod_auth_unix.c:1664,7'
          Dst:             find_config
        - Src:             'mod_auth_unix.c:1669,7'
          Dst:             find_config
    - functionName:    auth_unix_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1648
      functionLinenumberEnd: 1654
      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: 273
      functionLinenumberEnd: 281
      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:275,5'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:278,5'
          Dst:             setpwent
    - functionName:    pw_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 292
      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:286,5'
          Dst:             p_endpwent
        - Src:             'mod_auth_unix.c:289,5'
          Dst:             endpwent
    - functionName:    pw_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 303
      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:297,5'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:300,5'
          Dst:             setgrent
    - functionName:    pw_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 314
      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:308,5'
          Dst:             p_endgrent
        - Src:             'mod_auth_unix.c:311,5'
          Dst:             endgrent
    - functionName:    pw_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 340
      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:334,10'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:337,10'
          Dst:             getpwent
        - Src:             'mod_auth_unix.c:340,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 327
      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:321,10'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:324,10'
          Dst:             getgrent
        - Src:             'mod_auth_unix.c:327,15'
          Dst:             mod_create_data
    - functionName:    pw_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 455
      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:364,10'
          Dst:             p_getpwnam
        - Src:             'mod_auth_unix.c:367,10'
          Dst:             getpwnam
        - Src:             'mod_auth_unix.c:386,16'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:392,11'
          Dst:             strchr
        - Src:             'mod_auth_unix.c:394,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:418,11'
          Dst:             strncmp
        - Src:             'mod_auth_unix.c:423,25'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:430,16'
          Dst:             remove_config
        - Src:             'mod_auth_unix.c:431,13'
          Dst:             add_config_param_set
        - Src:             'mod_auth_unix.c:432,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:434,16'
          Dst:             remove_config
        - Src:             'mod_auth_unix.c:435,13'
          Dst:             add_config_param_set
        - Src:             'mod_auth_unix.c:436,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:438,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth_unix.c:445,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:450,13'
          Dst:             strchr
        - Src:             'mod_auth_unix.c:454,15'
          Dst:             mod_create_data
    - functionName:    pw_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 355
      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:349,10'
          Dst:             p_getpwuid
        - Src:             'mod_auth_unix.c:352,10'
          Dst:             getpwuid
        - Src:             'mod_auth_unix.c:355,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 469
      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:463,10'
          Dst:             p_getgrnam
        - Src:             'mod_auth_unix.c:466,10'
          Dst:             getgrnam
        - Src:             'mod_auth_unix.c:469,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 484
      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:478,10'
          Dst:             p_getgrgid
        - Src:             'mod_auth_unix.c:481,10'
          Dst:             getgrgid
        - Src:             'mod_auth_unix.c:484,15'
          Dst:             mod_create_data
    - functionName:    pw_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 764
      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:724,21'
          Dst:             get_pwd_info
        - Src:             'mod_auth_unix.c:730,9'
          Dst:             pr_auth_check
        - Src:             'mod_auth_unix.c:732,24'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:733,3'
          Dst:             pr_memscrub
        - Src:             'mod_auth_unix.c:736,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:739,3'
          Dst:             time
        - Src:             'mod_auth_unix.c:748,54'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:750,9'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:745,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:751,14'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:758,57'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:757,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:759,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:763,10'
          Dst:             mod_create_ret
    - functionName:    pw_authz
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 867
      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:774,21'
          Dst:             get_pwd_info
        - Src:             'mod_auth_unix.c:777,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:782,24'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:783,3'
          Dst:             pr_memscrub
        - Src:             'mod_auth_unix.c:785,3'
          Dst:             time
        - Src:             'mod_auth_unix.c:791,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth_unix.c:793,14'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:799,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth_unix.c:801,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:866,10'
          Dst:             mod_create_ret
    - functionName:    pw_check
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 1087
      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:1050,12'
          Dst:             pr_cmd_alloc
        - Src:             'mod_auth_unix.c:1053,8'
          Dst:             pw_authz
        - Src:             'mod_auth_unix.c:1058,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:1065,27'
          Dst:             crypt
        - Src:             'mod_auth_unix.c:1067,63'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1067,54'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1067,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1071,7'
          Dst:             strcmp
        - Src:             'mod_auth_unix.c:1086,10'
          Dst:             mod_create_ret
    - functionName:    pw_uid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1107
      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:1096,10'
          Dst:             p_getpwuid
        - Src:             'mod_auth_unix.c:1099,10'
          Dst:             getpwuid
        - Src:             'mod_auth_unix.c:1103,12'
          Dst:             mod_create_data
    - functionName:    pw_gid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1126
      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:1115,10'
          Dst:             p_getgrgid
        - Src:             'mod_auth_unix.c:1118,10'
          Dst:             getgrgid
        - Src:             'mod_auth_unix.c:1122,12'
          Dst:             mod_create_data
    - functionName:    pw_name2uid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1141
      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:1135,10'
          Dst:             p_getpwnam
        - Src:             'mod_auth_unix.c:1138,10'
          Dst:             getpwnam
        - Src:             'mod_auth_unix.c:1141,15'
          Dst:             mod_create_data
    - functionName:    pw_name2gid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1144
      functionLinenumberEnd: 1157
      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:1151,10'
          Dst:             p_getgrnam
        - Src:             'mod_auth_unix.c:1154,10'
          Dst:             getgrnam
        - Src:             'mod_auth_unix.c:1157,15'
          Dst:             mod_create_data
    - functionName:    pw_getgroups
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1553
      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:1509,17'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1514,39'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1514,17'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1521,9'
          Dst:             get_groups_by_initgroups
        - Src:             'mod_auth_unix.c:1523,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1524,11'
          Dst:             get_groups_by_getgrouplist
        - Src:             'mod_auth_unix.c:1529,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1530,11'
          Dst:             get_groups_by_getgrset
        - Src:             'mod_auth_unix.c:1534,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1535,11'
          Dst:             get_groups_by_getgrent
        - Src:             'mod_auth_unix.c:1544,12'
          Dst:             mod_create_data
        - Src:             'mod_auth_unix.c:1549,12'
          Dst:             mod_create_data
    - functionName:    p_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 222
      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:211,3'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:212,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:214,16'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:215,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:217,9'
          Dst:             strncmp
    - functionName:    p_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 270
      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:261,3'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:262,16'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:263,5'
          Dst:             pr_signals_handle
    - functionName:    p_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 205
      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:197,5'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:204,10'
          Dst:             fgetgrent
    - functionName:    p_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 174
      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:161,5'
          Dst:             rewind
        - Src:             'mod_auth_unix.c:164,12'
          Dst:             fopen
        - Src:             'mod_auth_unix.c:167,25'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:167,16'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:166,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: 1364
      functionLinenumberEnd: 1458
      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:1398,7'
          Dst:             geteuid
        - Src:             'mod_auth_unix.c:1403,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1407,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:1410,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_unix.c:1411,9'
          Dst:             initgroups
        - Src:             'mod_auth_unix.c:1412,12'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1413,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_unix.c:1416,59'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1416,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1418,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1422,13'
          Dst:             getgroups
        - Src:             'mod_auth_unix.c:1424,14'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1426,58'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1426,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1428,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1439,21'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1444,43'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1444,21'
          Dst:             push_array
    - functionName:    get_groups_by_getgrouplist
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1245
      functionLinenumberEnd: 1321
      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:1274,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1278,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:1285,9'
          Dst:             getgrouplist
        - Src:             'mod_auth_unix.c:1288,18'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1290,61'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1290,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1292,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1303,21'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1308,43'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1308,21'
          Dst:             push_array
    - functionName:    get_groups_by_getgrset
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1240
      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:1236,3'
          Dst:             __errno_location
    - functionName:    get_groups_by_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1359
      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:1332,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:1337,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:1343,11'
          Dst:             strncmp
        - Src:             'mod_auth_unix.c:1347,23'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1352,45'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1352,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: 139
      functionLinenumberEnd: 150
      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:141,5'
          Dst:             rewind
        - Src:             'mod_auth_unix.c:144,12'
          Dst:             fopen
        - Src:             'mod_auth_unix.c:147,26'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:147,17'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:146,7'
          Dst:             pr_log_pri
    - functionName:    p_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 193
      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:185,5'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:192,10'
          Dst:             fgetpwent
    - functionName:    p_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 255
      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:244,3'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:245,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:247,16'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:248,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:250,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: 225
      functionLinenumberEnd: 237
      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:228,3'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:229,16'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:230,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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_pwd_info
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 591
      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:493,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:496,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_unix.c:498,3'
          Dst:             setspent
        - Src:             'mod_auth_unix.c:501,8'
          Dst:             getspnam
        - Src:             'mod_auth_unix.c:503,11'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:537,19'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:537,10'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:536,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_unix.c:587,3'
          Dst:             endspent
        - Src:             'mod_auth_unix.c:588,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: 176
      functionLinenumberEnd: 181
      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:178,5'
          Dst:             fclose
    - functionName:    p_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 157
      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:154,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: 1559
      functionLinenumberEnd: 1598
      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:1565,5'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1565,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1568,3'
          Dst:             check_context
        - Src:             'mod_auth_unix.c:1568,3'
          Dst:             get_context_name
        - Src:             'mod_auth_unix.c:1568,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1568,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1568,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1570,7'
          Dst:             add_config_param
        - Src:             'mod_auth_unix.c:1573,9'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1576,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1579,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1582,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1585,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1589,7'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1589,7'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1589,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1594,16'
          Dst:             pcalloc
        - Src:             'mod_auth_unix.c:1597,10'
          Dst:             mod_create_ret
    - functionName:    set_persistentpasswd
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1600
      functionLinenumberEnd: 1617
      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:1604,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1604,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1605,3'
          Dst:             check_context
        - Src:             'mod_auth_unix.c:1605,3'
          Dst:             get_context_name
        - Src:             'mod_auth_unix.c:1605,3'
          Dst:             pstrcat
        - 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:1607,17'
          Dst:             get_boolean
        - Src:             'mod_auth_unix.c:1609,5'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1609,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1612,7'
          Dst:             add_config_param
        - Src:             'mod_auth_unix.c:1613,16'
          Dst:             palloc
        - Src:             'mod_auth_unix.c:1616,10'
          Dst:             mod_create_ret
    - functionName:    authfile_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 1996
      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:1985,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_file.c:1985,3'
          Dst:             authfile_sess_reinit_ev
        - Src:             'mod_auth_file.c:1991,9'
          Dst:             authfile_sess_init
        - Src:             'mod_auth_file.c:1993,5'
          Dst:             pr_session_disconnect
    - functionName:    authfile_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2017
      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:2004,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_file.c:2004,3'
          Dst:             authfile_sess_reinit_ev
        - Src:             'mod_auth_file.c:2007,7'
          Dst:             find_config
        - Src:             'mod_auth_file.c:2012,7'
          Dst:             find_config
    - functionName:    authfile_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1179
      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:1178,3'
          Dst:             af_endpwent
    - functionName:    authfile_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1182
      functionLinenumberEnd: 1188
      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:1186,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1188,16'
          Dst:             mod_create_data
    - functionName:    authfile_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1214
      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:1196,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1201,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1203,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1205,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1210,11'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1213,16'
          Dst:             mod_create_data
    - functionName:    authfile_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1227
      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:1220,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1224,9'
          Dst:             af_getpwuid
        - Src:             'mod_auth_file.c:1226,16'
          Dst:             mod_create_data
    - functionName:    authfile_name2uid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1239
      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:1232,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1236,9'
          Dst:             af_getpwnam
        - Src:             'mod_auth_file.c:1238,16'
          Dst:             mod_create_data
    - functionName:    authfile_setpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1247
      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:1242,7'
          Dst:             af_setpwent
    - functionName:    authfile_uid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1259
      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:1252,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1256,9'
          Dst:             af_getpwuid
        - Src:             'mod_auth_file.c:1258,16'
          Dst:             mod_create_data
    - functionName:    authfile_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1263
      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:1262,3'
          Dst:             af_endgrent
    - functionName:    authfile_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1272
      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:1270,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1272,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1275
      functionLinenumberEnd: 1286
      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:1279,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1283,9'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1285,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1312
      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:1293,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1299,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1301,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1303,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1308,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1311,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgroups
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1404
      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:1325,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1329,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1343,9'
          Dst:             af_getpwnam
        - Src:             'mod_auth_file.c:1350,17'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1354,11'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1357,41'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1357,19'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1361,10'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1366,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1371,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1377,11'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1381,23'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1385,45'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1385,23'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1390,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1395,12'
          Dst:             mod_create_data
        - Src:             'mod_auth_file.c:1400,12'
          Dst:             mod_create_data
    - functionName:    authfile_gid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1406
      functionLinenumberEnd: 1416
      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:1409,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1413,9'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1415,16'
          Dst:             mod_create_data
    - functionName:    authfile_name2gid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1428
      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:1421,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1425,9'
          Dst:             af_getgrnam
        - Src:             'mod_auth_file.c:1427,16'
          Dst:             mod_create_data
    - functionName:    authfile_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1436
      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:1431,7'
          Dst:             af_setgrent
    - functionName:    authfile_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1438
      functionLinenumberEnd: 1473
      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:1442,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1447,9'
          Dst:             af_getpwpass
        - Src:             'mod_auth_file.c:1465,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1467,7'
          Dst:             pr_auth_check
        - Src:             'mod_auth_file.c:1468,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_file.c:1472,10'
          Dst:             mod_create_ret
    - functionName:    authfile_chkpass
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1564
      functionLinenumberEnd: 1624
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          165
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - check_unsupported_algo
        - crypt
        - mod_create_ret
        - pr_log_debug
        - pr_timingsafe_bcmp
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1573,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1579,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1593,18'
          Dst:             crypt
        - Src:             'mod_auth_file.c:1594,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1601,57'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1600,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1605,27'
          Dst:             strlen
        - Src:             'mod_auth_file.c:1606,7'
          Dst:             check_unsupported_algo
        - Src:             'mod_auth_file.c:1612,13'
          Dst:             strlen
        - Src:             'mod_auth_file.c:1613,23'
          Dst:             strlen
        - Src:             'mod_auth_file.c:1618,7'
          Dst:             pr_timingsafe_bcmp
        - Src:             'mod_auth_file.c:1620,12'
          Dst:             mod_create_ret
    - functionName:    check_unsupported_algo
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1562
      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:1492,8'
          Dst:             fopen
        - Src:             'mod_auth_file.c:1495,68'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1495,59'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1494,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1501,9'
          Dst:             fread
        - Src:             'mod_auth_file.c:1503,9'
          Dst:             feof
        - Src:             'mod_auth_file.c:1505,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1508,16'
          Dst:             ferror
        - Src:             'mod_auth_file.c:1510,69'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1510,60'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1509,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1513,5'
          Dst:             fclose
        - Src:             'mod_auth_file.c:1517,3'
          Dst:             fclose
        - Src:             'mod_auth_file.c:1524,7'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1531,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1534,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1539,16'
          Dst:             strncmp
        - Src:             'mod_auth_file.c:1541,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1544,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1549,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1558,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: 1019
      functionLinenumberEnd: 1087
      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:1029,14'
          Dst:             pr_fsio_lseek
        - Src:             'mod_auth_file.c:1042,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1043,32'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1044,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1045,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1048,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth_file.c:1052,34'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:1053,11'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:1054,25'
          Dst:             geteuid
        - Src:             'mod_auth_file.c:1054,11'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:1054,51'
          Dst:             getegid
        - Src:             'mod_auth_file.c:1054,37'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:1055,11'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1049,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1060,34'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1058,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1063,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1068,9'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth_file.c:1072,9'
          Dst:             fcntl
        - Src:             'mod_auth_file.c:1076,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1076,9'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1073,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1079,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1084,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1085,3'
          Dst:             __errno_location
    - functionName:    af_getpwpass
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 993
      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:992,24'
          Dst:             af_getpwnam
    - functionName:    af_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 989
      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:972,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:976,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:978,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:980,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:985,11'
          Dst:             af_getpwent
    - functionName:    af_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 906
      functionLinenumberEnd: 966
      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:911,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:918,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:923,12'
          Dst:             pr_fsio_gets
        - Src:             'mod_auth_file.c:924,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:935,11'
          Dst:             strlen
        - Src:             'mod_auth_file.c:936,13'
          Dst:             af_parse_passwd
        - Src:             'mod_auth_file.c:956,9'
          Dst:             af_allow_pwent
    - functionName:    af_parse_passwd
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 348
      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:267,3'
          Dst:             sstrncpy
        - Src:             'mod_auth_file.c:285,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:297,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:302,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:310,17'
          Dst:             strtol
        - Src:             'mod_auth_file.c:313,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:318,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:327,17'
          Dst:             strtol
        - Src:             'mod_auth_file.c:330,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:335,7'
          Dst:             pr_log_pri
    - functionName:    af_allow_pwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          292
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_regexp_exec
        - pr_uid2str
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:822,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:828,7'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:829,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:831,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:841,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:842,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:839,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:843,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:850,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:851,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:848,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:852,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:862,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:867,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:870,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:879,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:884,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:887,7'
          Dst:             __errno_location
    - functionName:    af_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 818
      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:754,14'
          Dst:             pr_fsio_lseek
        - Src:             'mod_auth_file.c:773,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:774,33'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:775,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:776,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:779,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth_file.c:783,35'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:784,11'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:785,25'
          Dst:             geteuid
        - Src:             'mod_auth_file.c:785,11'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:785,51'
          Dst:             getegid
        - Src:             'mod_auth_file.c:785,37'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:786,11'
          Dst:             strerror
        - Src:             'mod_auth_file.c:780,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:791,35'
          Dst:             strerror
        - Src:             'mod_auth_file.c:789,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:794,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:799,9'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth_file.c:803,9'
          Dst:             fcntl
        - Src:             'mod_auth_file.c:807,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:807,9'
          Dst:             strerror
        - Src:             'mod_auth_file.c:804,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:810,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:815,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:816,3'
          Dst:             __errno_location
    - functionName:    af_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 719
      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:702,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:706,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:708,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:710,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:715,11'
          Dst:             af_getgrent
    - functionName:    af_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 696
      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:622,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:639,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:643,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:644,7'
          Dst:             _exit
        - Src:             'mod_auth_file.c:646,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:652,12'
          Dst:             af_getgrentline
        - Src:             'mod_auth_file.c:655,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:663,12'
          Dst:             strchr
        - Src:             'mod_auth_file.c:668,13'
          Dst:             af_parse_grp
        - Src:             'mod_auth_file.c:687,9'
          Dst:             af_allow_grent
    - functionName:    af_getgrentline
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 424
      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:373,9'
          Dst:             pr_fsio_gets
        - Src:             'mod_auth_file.c:375,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:378,9'
          Dst:             strchr
        - Src:             'mod_auth_file.c:381,25'
          Dst:             strlen
        - Src:             'mod_auth_file.c:379,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:395,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:398,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:403,17'
          Dst:             realloc
        - Src:             'mod_auth_file.c:416,11'
          Dst:             pr_fsio_gets
    - functionName:    af_parse_grp
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          266
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - af_getgrmems
        - pr_log_pri
        - pr_trace_msg
        - realloc
        - sstrncpy
        - strchr
        - strlen
        - strrchr
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:452,8'
          Dst:             strlen
        - Src:             'mod_auth_file.c:461,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:465,15'
          Dst:             realloc
        - Src:             'mod_auth_file.c:484,3'
          Dst:             sstrncpy
        - Src:             'mod_auth_file.c:486,8'
          Dst:             strrchr
        - Src:             'mod_auth_file.c:494,10'
          Dst:             strchr
        - Src:             'mod_auth_file.c:501,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:511,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:516,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:524,18'
          Dst:             strtol
        - Src:             'mod_auth_file.c:527,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:532,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:538,18'
          Dst:             af_getgrmems
    - functionName:    af_allow_grent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 591
      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:545,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:555,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:556,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:553,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:557,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:564,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:565,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:562,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:566,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:576,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:581,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:584,7'
          Dst:             __errno_location
    - functionName:    af_getgrmems
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 443
      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:430,5'
          Dst:             pr_signals_handle
    - functionName:    af_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 742
      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:725,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:729,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:731,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:738,11'
          Dst:             af_getgrent
    - functionName:    af_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - pr_fsio_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:598,5'
          Dst:             pr_fsio_close
    - functionName:    af_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 996
      functionLinenumberEnd: 1017
      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:1000,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1004,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1006,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1013,11'
          Dst:             af_getpwent
    - functionName:    af_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_fsio_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:899,5'
          Dst:             pr_fsio_close
    - functionName:    set_authfileoptions
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1669
      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:1636,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1636,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1639,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1639,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1639,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1639,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1639,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1641,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1644,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1652,16'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1660,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1660,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1660,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1665,16'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1668,10'
          Dst:             mod_create_ret
    - functionName:    set_authgroupfile
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1672
      functionLinenumberEnd: 1808
      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:1685,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1685,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1688,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1688,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1688,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1688,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1688,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1692,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1692,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1692,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1706,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1707,11'
          Dst:             af_check_file
        - Src:             'mod_auth_file.c:1708,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1709,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1712,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1712,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1712,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1712,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1718,9'
          Dst:             af_check_group_syntax
        - Src:             'mod_auth_file.c:1719,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1719,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1719,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1719,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1719,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1724,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1726,10'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1727,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1735,11'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1743,15'
          Dst:             strchr
        - Src:             'mod_auth_file.c:1745,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1745,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1750,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1752,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1752,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1757,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1759,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1759,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1763,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1763,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1771,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1776,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1784,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1788,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1789,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1791,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1791,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1791,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1795,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1801,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1801,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1801,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1807,10'
          Dst:             mod_create_ret
    - functionName:    set_authuserfile
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1811
      functionLinenumberEnd: 1975
      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:1824,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1824,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1827,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1827,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1827,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1827,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1827,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1831,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1831,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1831,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1845,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1846,11'
          Dst:             af_check_file
        - Src:             'mod_auth_file.c:1847,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1848,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1851,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1851,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1851,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1851,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1857,9'
          Dst:             af_check_user_syntax
        - Src:             'mod_auth_file.c:1858,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1858,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1858,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1858,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1858,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1862,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1864,10'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1865,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1873,11'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1881,15'
          Dst:             strchr
        - Src:             'mod_auth_file.c:1883,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1883,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1888,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1890,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1890,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1895,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1898,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1898,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1902,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1902,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1910,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1915,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1923,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1927,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1928,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1930,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1930,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1930,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1934,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1938,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1943,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1951,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1955,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1956,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1958,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1958,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1958,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1962,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1968,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1968,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1968,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1974,10'
          Dst:             mod_create_ret
    - functionName:    af_check_file
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 247
      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:148,9'
          Dst:             lstat
        - Src:             'mod_auth_file.c:150,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:153,19'
          Dst:             strerror
        - Src:             'mod_auth_file.c:152,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:155,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:165,11'
          Dst:             af_check_parent_dir
        - Src:             'mod_auth_file.c:174,11'
          Dst:             pr_fsio_readlink
        - Src:             'mod_auth_file.c:180,14'
          Dst:             dir_abs_path
        - Src:             'mod_auth_file.c:186,11'
          Dst:             stat
        - Src:             'mod_auth_file.c:188,20'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:191,26'
          Dst:             strerror
        - Src:             'mod_auth_file.c:190,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:193,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:202,24'
          Dst:             strerror
        - Src:             'mod_auth_file.c:201,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:204,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:215,46'
          Dst:             strerror
        - Src:             'mod_auth_file.c:213,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:217,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:227,46'
          Dst:             strerror
        - Src:             'mod_auth_file.c:225,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:229,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:234,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:241,9'
          Dst:             af_check_parent_dir
    - functionName:    af_check_user_syntax
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1131
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          107
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - af_endpwent
        - af_getpwent
        - pcalloc
        - 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:1136,18'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1137,27'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1139,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1140,30'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1141,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1142,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1147,30'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1145,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1149,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1154,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1156,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1158,11'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1161,3'
          Dst:             af_endpwent
        - Src:             'mod_auth_file.c:1165,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1167,5'
          Dst:             __errno_location
    - functionName:    af_check_parent_dir
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 138
      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:106,9'
          Dst:             strrchr
        - Src:             'mod_auth_file.c:108,16'
          Dst:             pstrndup
        - Src:             'mod_auth_file.c:114,9'
          Dst:             stat
        - Src:             'mod_auth_file.c:116,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:120,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:118,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:122,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:131,45'
          Dst:             strerror
        - Src:             'mod_auth_file.c:129,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:133,5'
          Dst:             __errno_location
    - functionName:    af_check_group_syntax
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - af_endgrent
        - af_getgrent
        - pcalloc
        - 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:1094,19'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1095,28'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1097,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1098,31'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1099,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1100,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1105,31'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1103,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1107,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1111,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1113,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1115,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1118,3'
          Dst:             af_endgrent
        - Src:             'mod_auth_file.c:1122,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1124,5'
          Dst:             __errno_location
    - functionName:    ctrls_listen
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 596
      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:467,3'
          Dst:             pr_signals_block
        - Src:             'mod_ctrls.c:470,12'
          Dst:             socket
        - Src:             'mod_ctrls.c:472,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:474,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:476,53'
          Dst:             strerror
        - Src:             'mod_ctrls.c:475,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:478,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:488,11'
          Dst:             pr_fs_get_usable_fd
        - Src:             'mod_ctrls.c:490,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:492,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:494,49'
          Dst:             strerror
        - Src:             'mod_ctrls.c:493,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:495,14'
          Dst:             close
        - Src:             'mod_ctrls.c:497,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:501,12'
          Dst:             close
        - Src:             'mod_ctrls.c:505,7'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:506,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:508,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:511,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:509,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:513,12'
          Dst:             close
        - Src:             'mod_ctrls.c:514,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:521,10'
          Dst:             unlink
        - Src:             'mod_ctrls.c:527,3'
          Dst:             sstrncpy
        - Src:             'mod_ctrls.c:532,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:534,7'
          Dst:             bind
        - Src:             'mod_ctrls.c:535,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:537,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:538,12'
          Dst:             close
        - Src:             'mod_ctrls.c:540,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:542,54'
          Dst:             strerror
        - Src:             'mod_ctrls.c:541,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:544,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:543,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:546,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:551,7'
          Dst:             listen
        - Src:             'mod_ctrls.c:552,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:554,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:555,12'
          Dst:             close
        - Src:             'mod_ctrls.c:557,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:560,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:558,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:562,22'
          Dst:             strerror
        - Src:             'mod_ctrls.c:561,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:564,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:578,7'
          Dst:             chmod
        - Src:             'mod_ctrls.c:579,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:581,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:582,12'
          Dst:             close
        - Src:             'mod_ctrls.c:584,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:586,52'
          Dst:             strerror
        - Src:             'mod_ctrls.c:585,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:588,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:587,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:590,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:594,3'
          Dst:             pr_signals_unblock
    - functionName:    ctrls_closelog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 100
      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:96,5'
          Dst:             pr_ctrls_set_logfd
    - functionName:    ctrls_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1258
      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:1250,3'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:1251,18'
          Dst:             ctrls_listen
        - Src:             'mod_ctrls.c:1252,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:1255,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1256,3'
          Dst:             pr_timer_add
        - Src:             'mod_ctrls.c:1256,3'
          Dst:             ctrls_timer_cb
    - functionName:    ctrls_timer_cb
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      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:745,12'
          Dst:             close
        - Src:             'mod_ctrls.c:750,14'
          Dst:             unlink
        - Src:             'mod_ctrls.c:760,5'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:761,11'
          Dst:             chown
        - Src:             'mod_ctrls.c:762,14'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:763,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:768,9'
          Dst:             strerror
        - Src:             'mod_ctrls.c:766,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:775,3'
          Dst:             pr_alarms_block
        - Src:             'mod_ctrls.c:778,3'
          Dst:             ctrls_recv_cl_reqs
        - Src:             'mod_ctrls.c:781,3'
          Dst:             pr_run_ctrls
        - Src:             'mod_ctrls.c:784,3'
          Dst:             ctrls_send_cl_resps
        - Src:             'mod_ctrls.c:787,3'
          Dst:             pr_ctrls_reset
        - Src:             'mod_ctrls.c:789,3'
          Dst:             pr_alarms_unblock
    - functionName:    ctrls_recv_cl_reqs
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 704
      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:614,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:624,11'
          Dst:             select
        - Src:             'mod_ctrls.c:625,14'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:629,7'
          Dst:             ctrls_cls_read
        - Src:             'mod_ctrls.c:636,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:641,56'
          Dst:             strerror
        - Src:             'mod_ctrls.c:640,7'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:643,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:649,11'
          Dst:             ctrls_setnonblock
        - Src:             'mod_ctrls.c:650,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:654,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:652,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:656,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:661,15'
          Dst:             pr_ctrls_accept
        - Src:             'mod_ctrls.c:663,16'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:666,11'
          Dst:             ctrls_setblock
        - Src:             'mod_ctrls.c:669,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:669,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:667,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:675,55'
          Dst:             strerror
        - Src:             'mod_ctrls.c:674,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:682,11'
          Dst:             ctrls_setnonblock
        - Src:             'mod_ctrls.c:685,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:685,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:683,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:686,16'
          Dst:             close
        - Src:             'mod_ctrls.c:690,11'
          Dst:             pr_ctrls_check_user_acl
        - Src:             'mod_ctrls.c:691,11'
          Dst:             pr_ctrls_check_group_acl
        - Src:             'mod_ctrls.c:696,7'
          Dst:             ctrls_add_cl
        - Src:             'mod_ctrls.c:701,3'
          Dst:             ctrls_cls_read
    - functionName:    ctrls_send_cl_resps
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 711
      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:709,3'
          Dst:             ctrls_cls_write
    - functionName:    ctrls_cls_write
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 453
      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:348,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:355,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:359,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:359,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:357,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:362,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:370,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:374,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:374,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:372,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:377,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:384,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:388,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:388,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:386,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:391,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:408,19'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:414,69'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:414,60'
          Dst:             strerror
        - Src:             'mod_ctrls.c:412,17'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:423,17'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:428,19'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:436,15'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:445,5'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:449,5'
          Dst:             ctrls_del_cl
    - functionName:    ctrls_del_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 240
      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:235,10'
          Dst:             close
        - Src:             'mod_ctrls.c:238,3'
          Dst:             destroy_pool
    - functionName:    ctrls_cls_read
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 331
      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:261,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ctrls.c:255,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:257,11'
          Dst:             pr_ctrls_recv_request
        - Src:             'mod_ctrls.c:258,14'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:271,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:290,69'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:290,60'
          Dst:             strerror
        - Src:             'mod_ctrls.c:289,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:320,21'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:323,9'
          Dst:             pr_ctrls_log
    - functionName:    ctrls_setnonblock
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 737
      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:732,3'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:734,11'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:735,9'
          Dst:             fcntl
    - functionName:    ctrls_setblock
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 724
      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:719,3'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:721,11'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:722,9'
          Dst:             fcntl
    - functionName:    ctrls_add_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 217
      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:204,8'
          Dst:             ctrls_new_cl
        - Src:             'mod_ctrls.c:208,17'
          Dst:             pr_auth_uid2name
        - Src:             'mod_ctrls.c:210,18'
          Dst:             pr_auth_gid2name
        - Src:             'mod_ctrls.c:214,3'
          Dst:             pr_ctrls_log
    - functionName:    ctrls_new_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 195
      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:149,15'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:150,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:152,33'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:161,25'
          Dst:             make_array
        - Src:             'mod_ctrls.c:172,15'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:173,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:175,28'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:184,20'
          Dst:             make_array
    - functionName:    ctrls_init
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          91
      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:1321,16'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:1322,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:1328,31'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:1329,5'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1331,9'
          Dst:             pr_ctrls_register
        - Src:             'mod_ctrls.c:1335,46'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1335,37'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1333,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:1340,3'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1342,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1342,3'
          Dst:             ctrls_restart_ev
        - Src:             'mod_ctrls.c:1343,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1343,3'
          Dst:             ctrls_shutdown_ev
        - Src:             'mod_ctrls.c:1344,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1344,3'
          Dst:             ctrls_postparse_ev
    - functionName:    ctrls_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1349
      functionLinenumberEnd: 1361
      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:1353,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1355,3'
          Dst:             pr_event_unregister
        - Src:             'mod_ctrls.c:1355,3'
          Dst:             ctrls_restart_ev
        - Src:             'mod_ctrls.c:1358,3'
          Dst:             close
    - functionName:    ctrls_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1260
      functionLinenumberEnd: 1311
      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:1264,3'
          Dst:             pr_alarms_block
        - Src:             'mod_ctrls.c:1272,16'
          Dst:             close
        - Src:             'mod_ctrls.c:1282,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:1284,10'
          Dst:             close
        - Src:             'mod_ctrls.c:1287,3'
          Dst:             ctrls_closelog
        - Src:             'mod_ctrls.c:1291,5'
          Dst:             destroy_pool
        - Src:             'mod_ctrls.c:1298,16'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:1299,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:1305,31'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:1306,5'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1309,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1310,3'
          Dst:             pr_alarms_unblock
    - functionName:    ctrls_handle_help
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 822
      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:808,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:812,7'
          Dst:             pr_get_registered_actions
        - Src:             'mod_ctrls.c:813,71'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:813,62'
          Dst:             strerror
        - Src:             'mod_ctrls.c:813,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:818,3'
          Dst:             qsort
        - Src:             'mod_ctrls.c:818,3'
          Dst:             respcmp
    - functionName:    ctrls_handle_insctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 870
      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:834,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:837,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:843,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:851,9'
          Dst:             pr_module_get
        - Src:             'mod_ctrls.c:854,9'
          Dst:             pr_set_registered_actions
        - Src:             'mod_ctrls.c:855,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:859,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:864,16'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:864,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:863,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:868,3'
          Dst:             pr_ctrls_add_response
    - functionName:    ctrls_handle_lsctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 902
      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:880,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:883,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:888,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:892,7'
          Dst:             pr_get_registered_actions
        - Src:             'mod_ctrls.c:893,71'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:893,62'
          Dst:             strerror
        - Src:             'mod_ctrls.c:893,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:898,3'
          Dst:             qsort
        - Src:             'mod_ctrls.c:898,3'
          Dst:             respcmp
    - functionName:    ctrls_handle_rmctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 975
      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:914,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:917,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:923,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:930,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:931,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:932,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:933,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:941,9'
          Dst:             pr_module_get
        - Src:             'mod_ctrls.c:944,9'
          Dst:             pr_set_registered_actions
        - Src:             'mod_ctrls.c:945,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:949,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:954,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:953,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:958,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:959,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:965,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:966,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:968,12'
          Dst:             close
    - functionName:    respcmp
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 797
      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:797,10'
          Dst:             strcmp
    - functionName:    ctrls_shutdown_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1241
      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:1229,16'
          Dst:             close
        - Src:             'mod_ctrls.c:1235,10'
          Dst:             close
        - Src:             'mod_ctrls.c:1239,10'
          Dst:             unlink
    - functionName:    set_ctrlsacls
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1016
      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:986,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:986,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:987,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:987,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:987,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:987,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:987,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:994,13'
          Dst:             pr_ctrls_parse_acl
        - Src:             'mod_ctrls.c:997,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:998,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:999,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:999,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1003,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1004,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1005,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1005,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1008,9'
          Dst:             pr_ctrls_set_module_acls2
        - Src:             'mod_ctrls.c:1011,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1011,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1011,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1015,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsauthfreshness
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1032
      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:1022,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1022,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1023,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1023,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1023,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1023,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1023,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1025,15'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1027,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1027,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1031,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsengine
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1047
      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:1037,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1037,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1038,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1038,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1038,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1038,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1038,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1040,12'
          Dst:             get_boolean
        - Src:             'mod_ctrls.c:1042,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1042,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1046,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsinterval
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1069
      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:1053,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1053,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1054,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1054,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1054,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1054,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1054,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1056,11'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1058,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1058,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1064,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1065,3'
          Dst:             pr_timer_add
        - Src:             'mod_ctrls.c:1065,3'
          Dst:             ctrls_timer_cb
        - Src:             'mod_ctrls.c:1068,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlslog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1093
      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:1074,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1074,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1075,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1075,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1075,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1075,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1075,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1077,19'
          Dst:             pstrdup
        - Src:             'mod_ctrls.c:1079,9'
          Dst:             ctrls_openlog
        - Src:             'mod_ctrls.c:1082,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1082,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1082,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1082,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1082,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1087,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1087,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1087,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1092,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsmaxclients
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1109
      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:1099,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1099,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1100,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1100,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1100,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1100,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1100,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1102,14'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1104,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1104,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1108,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocket
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1138
      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:1115,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1115,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1116,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1116,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1116,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1116,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1116,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1120,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1120,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1125,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:1127,12'
          Dst:             unlink
        - Src:             'mod_ctrls.c:1128,12'
          Dst:             close
        - Src:             'mod_ctrls.c:1133,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1134,23'
          Dst:             pstrdup
        - Src:             'mod_ctrls.c:1137,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocketacl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1173
      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:1142,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1142,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1143,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1143,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1143,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1143,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1143,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1145,3'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1148,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1149,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1150,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1150,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1154,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1155,9'
          Dst:             pr_ctrls_set_user_acl
        - Src:             'mod_ctrls.c:1157,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1157,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1157,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1157,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1157,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1161,14'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1162,9'
          Dst:             pr_ctrls_set_group_acl
        - Src:             'mod_ctrls.c:1164,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1164,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1164,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1164,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1164,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1169,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1169,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1172,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocketowner
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1214
      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:1180,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1180,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1181,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1181,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1181,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1181,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1181,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1183,9'
          Dst:             pr_auth_name2uid
        - Src:             'mod_ctrls.c:1185,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1186,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1190,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1198,9'
          Dst:             pr_auth_name2gid
        - Src:             'mod_ctrls.c:1200,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1201,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1205,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1213,10'
          Dst:             mod_create_ret
    - functionName:    ctrls_openlog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 138
      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:111,3'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:112,9'
          Dst:             pr_log_openfile
        - Src:             'mod_ctrls.c:113,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:114,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:117,5'
          Dst:             pr_ctrls_set_logfd
        - Src:             'mod_ctrls.c:123,9'
          Dst:             strerror
        - Src:             'mod_ctrls.c:121,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:126,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:131,7'
          Dst:             pr_log_pri
    - functionName:    tab_key_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 237
      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:226,9'
          Dst:             pr_signals_handle
    - functionName:    table_handling_signal
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1315
      functionLinenumberEnd: 1324
      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:1322,3'
          Dst:             __errno_location
    - functionName:    table_printf
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1212
      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:1207,3'
          Dst:             pr_vsnprintf
        - Src:             'table.c:1211,3'
          Dst:             pr_trace_msg
    - functionName:    pr_table_dump
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1262
      functionLinenumberEnd: 1313
      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:1304,9'
          Dst:             pr_signals_handle
    - functionName:    tab_copy_cb
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1243
      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:1233,9'
          Dst:             pr_table_kexists
        - Src:             'table.c:1235,11'
          Dst:             pr_table_kset
        - Src:             'table.c:1239,11'
          Dst:             pr_table_kadd
    - functionName:    pr_table_kexists
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 539
      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:487,5'
          Dst:             __errno_location
        - Src:             'table.c:492,5'
          Dst:             __errno_location
        - Src:             'table.c:537,3'
          Dst:             __errno_location
    - functionName:    pr_table_kset
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 796
      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:721,5'
          Dst:             __errno_location
        - Src:             'table.c:726,5'
          Dst:             __errno_location
        - Src:             'table.c:757,5'
          Dst:             __errno_location
        - Src:             'table.c:772,9'
          Dst:             __errno_location
        - Src:             'table.c:794,3'
          Dst:             __errno_location
    - functionName:    pr_table_kadd
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 479
      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:401,5'
          Dst:             __errno_location
        - Src:             'table.c:407,5'
          Dst:             __errno_location
        - Src:             'table.c:420,7'
          Dst:             tab_entry_alloc
        - Src:             'table.c:449,11'
          Dst:             __errno_location
        - Src:             'table.c:467,9'
          Dst:             tab_key_alloc
        - Src:             'table.c:477,3'
          Dst:             tab_entry_insert
    - functionName:    tab_entry_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 258
      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:255,7'
          Dst:             pcalloc
    - functionName:    tab_key_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 213
      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:210,7'
          Dst:             pcalloc
    - functionName:    tab_entry_insert
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 300
      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: 1246
      functionLinenumberEnd: 1260
      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:1251,5'
          Dst:             __errno_location
        - Src:             'table.c:1258,9'
          Dst:             pr_table_do
        - Src:             'table.c:1258,9'
          Dst:             tab_copy_cb
    - functionName:    pr_table_do
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 932
      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:897,5'
          Dst:             __errno_location
        - Src:             'table.c:916,9'
          Dst:             pr_signals_handle
        - Src:             'table.c:923,9'
          Dst:             __errno_location
    - functionName:    pr_table_load
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1224
      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:1218,5'
          Dst:             __errno_location
    - functionName:    pr_table_pcalloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1199
      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:1194,5'
          Dst:             __errno_location
        - Src:             'table.c:1198,10'
          Dst:             pcalloc
    - functionName:    pr_table_ctl
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1189
      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:1103,3'
          Branch Sides:    []
      Callsites:
        - Src:             'table.c:1093,5'
          Dst:             __errno_location
        - Src:             'table.c:1099,5'
          Dst:             __errno_location
        - Src:             'table.c:1112,9'
          Dst:             __errno_location
        - Src:             'table.c:1141,9'
          Dst:             __errno_location
        - Src:             'table.c:1147,9'
          Dst:             __errno_location
        - Src:             'table.c:1156,21'
          Dst:             pcalloc
        - Src:             'table.c:1167,9'
          Dst:             __errno_location
        - Src:             'table.c:1176,9'
          Dst:             __errno_location
        - Src:             'table.c:1185,7'
          Dst:             __errno_location
    - functionName:    key_hash
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 155
      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:139,24'
          Dst:             strlen
        - Src:             'table.c:149,7'
          Dst:             pr_signals_handle
    - functionName:    key_cmp
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 128
      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:127,10'
          Dst:             strncmp
    - functionName:    entry_insert
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 174
      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: 177
      functionLinenumberEnd: 192
      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: 1073
      functionLinenumberEnd: 1088
      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:1077,5'
          Dst:             __errno_location
        - Src:             'table.c:1083,20'
          Dst:             strlen
        - Src:             'table.c:1086,39'
          Dst:             strlen
        - Src:             'table.c:1086,10'
          Dst:             pr_table_kset
    - functionName:    pr_table_rewind
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1070
      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:1064,5'
          Dst:             __errno_location
    - functionName:    pr_table_remove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1060
      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:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1055,5'
          Dst:             __errno_location
        - Src:             'table.c:1059,42'
          Dst:             strlen
        - Src:             'table.c:1059,10'
          Dst:             pr_table_kremove
    - functionName:    pr_table_kremove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 709
      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:639,5'
          Dst:             __errno_location
        - Src:             'table.c:644,5'
          Dst:             __errno_location
        - Src:             'table.c:662,5'
          Dst:             tab_entry_remove
        - Src:             'table.c:663,5'
          Dst:             tab_entry_free
        - Src:             'table.c:677,5'
          Dst:             __errno_location
        - Src:             'table.c:697,7'
          Dst:             tab_entry_remove
        - Src:             'table.c:698,7'
          Dst:             tab_entry_free
        - Src:             'table.c:707,3'
          Dst:             __errno_location
    - functionName:    tab_entry_remove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 355
      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:350,5'
          Dst:             tab_key_free
    - functionName:    tab_entry_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 282
      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:271,9'
          Dst:             pr_signals_handle
    - functionName:    pr_table_next
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1047
      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:1047,10'
          Dst:             pr_table_knext
    - functionName:    pr_table_knext
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1044
      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:1013,5'
          Dst:             __errno_location
        - Src:             'table.c:1019,9'
          Dst:             tab_entry_next
        - Src:             'table.c:1022,7'
          Dst:             pr_signals_handle
        - Src:             'table.c:1027,13'
          Dst:             tab_entry_next
        - Src:             'table.c:1035,5'
          Dst:             __errno_location
    - functionName:    tab_entry_next
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 338
      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: 994
      functionLinenumberEnd: 1007
      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:998,5'
          Dst:             __errno_location
        - Src:             'table.c:1003,18'
          Dst:             strlen
        - Src:             'table.c:1006,10'
          Dst:             pr_table_kget
    - functionName:    pr_table_kget
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 630
      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:547,5'
          Dst:             __errno_location
        - Src:             'table.c:556,5'
          Dst:             __errno_location
        - Src:             'table.c:564,5'
          Dst:             __errno_location
        - Src:             'table.c:595,5'
          Dst:             __errno_location
        - Src:             'table.c:628,3'
          Dst:             __errno_location
    - functionName:    pr_table_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 991
      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:980,5'
          Dst:             __errno_location
        - Src:             'table.c:985,5'
          Dst:             __errno_location
        - Src:             'table.c:989,3'
          Dst:             destroy_pool
    - functionName:    pr_table_exists
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 975
      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:970,5'
          Dst:             __errno_location
        - Src:             'table.c:974,42'
          Dst:             strlen
        - Src:             'table.c:974,10'
          Dst:             pr_table_kexists
    - functionName:    pr_table_empty
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 965
      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:938,5'
          Dst:             __errno_location
        - Src:             'table.c:952,9'
          Dst:             pr_signals_handle
        - Src:             'table.c:955,7'
          Dst:             tab_entry_remove
        - Src:             'table.c:956,7'
          Dst:             tab_entry_free
    - functionName:    pr_table_count
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 888
      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:883,5'
          Dst:             __errno_location
    - functionName:    pr_table_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 878
      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:878,10'
          Dst:             pr_table_nalloc
    - functionName:    pr_table_nalloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 875
      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:852,5'
          Dst:             __errno_location
        - Src:             'table.c:856,14'
          Dst:             make_sub_pool
        - Src:             'table.c:857,3'
          Dst:             pr_pool_tag
        - Src:             'table.c:859,9'
          Dst:             pcalloc
        - Src:             'table.c:863,17'
          Dst:             pcalloc
        - Src:             'table.c:871,15'
          Dst:             tab_get_seed
    - functionName:    tab_get_seed
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 387
      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:370,8'
          Dst:             open
        - Src:             'table.c:372,13'
          Dst:             read
        - Src:             'table.c:373,12'
          Dst:             close
        - Src:             'table.c:377,18'
          Dst:             time
        - Src:             'table.c:383,28'
          Dst:             rand
        - Src:             'table.c:383,37'
          Dst:             getpid
    - functionName:    pr_table_add_dup
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 844
      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:822,5'
          Dst:             __errno_location
        - Src:             'table.c:831,5'
          Dst:             __errno_location
        - Src:             'table.c:837,20'
          Dst:             strlen
        - Src:             'table.c:840,14'
          Dst:             pcalloc
        - Src:             'table.c:843,10'
          Dst:             pr_table_add
    - functionName:    pr_table_add
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 814
      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:803,5'
          Dst:             __errno_location
        - Src:             'table.c:809,20'
          Dst:             strlen
        - Src:             'table.c:812,39'
          Dst:             strlen
        - Src:             'table.c:812,10'
          Dst:             pr_table_kadd
    - functionName:    get_errno_desc
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 640
      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:634,12'
          Dst:             strerror
    - functionName:    get_errno_name
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 627
      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: 452
      functionLinenumberEnd: 455
      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:454,3'
          Dst:             pr_snprintf
    - functionName:    get_uid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 449
      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:448,3'
          Dst:             pr_snprintf
    - functionName:    pr_error_explain_writev
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2826
      functionLinenumberEnd: 2850
      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:2830,7'
          Dst:             check_error
        - Src:             'error.c:2834,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2839,14'
          Dst:             __errno_location
        - Src:             'error.c:2843,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2844,5'
          Dst:             __errno_location
    - functionName:    check_error
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1049
      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:1039,5'
          Dst:             __errno_location
        - Src:             'error.c:1044,5'
          Dst:             __errno_location
    - functionName:    pr_error_set_what
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 426
      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:420,5'
          Dst:             __errno_location
        - Src:             'error.c:424,19'
          Dst:             pstrdup
    - functionName:    trace_explained_error
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1035
      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:1028,62'
          Dst:             strerror
        - Src:             'error.c:1026,12'
          Dst:             pr_trace_msg
        - Src:             'error.c:1033,36'
          Dst:             strerror
        - Src:             'error.c:1031,5'
          Dst:             pr_trace_msg
    - functionName:    pr_error_explain_write
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2799
      functionLinenumberEnd: 2823
      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:2803,7'
          Dst:             check_error
        - Src:             'error.c:2807,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2812,14'
          Dst:             __errno_location
        - Src:             'error.c:2816,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2817,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_utimes
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2772
      functionLinenumberEnd: 2796
      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:2776,7'
          Dst:             check_error
        - Src:             'error.c:2780,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2785,14'
          Dst:             __errno_location
        - Src:             'error.c:2789,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2790,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_unlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2745
      functionLinenumberEnd: 2769
      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:2749,7'
          Dst:             check_error
        - Src:             'error.c:2753,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2758,14'
          Dst:             __errno_location
        - Src:             'error.c:2762,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2763,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_truncate
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2719
      functionLinenumberEnd: 2743
      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:2723,7'
          Dst:             check_error
        - Src:             'error.c:2727,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2732,14'
          Dst:             __errno_location
        - Src:             'error.c:2736,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2737,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_symlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2693
      functionLinenumberEnd: 2717
      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:2697,7'
          Dst:             check_error
        - Src:             'error.c:2701,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2706,14'
          Dst:             __errno_location
        - Src:             'error.c:2710,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2711,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_statvfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2666
      functionLinenumberEnd: 2690
      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:2670,7'
          Dst:             check_error
        - Src:             'error.c:2674,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2679,14'
          Dst:             __errno_location
        - Src:             'error.c:2683,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2684,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_statfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2640
      functionLinenumberEnd: 2664
      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:2644,7'
          Dst:             check_error
        - Src:             'error.c:2648,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2653,14'
          Dst:             __errno_location
        - Src:             'error.c:2657,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2658,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_stat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2614
      functionLinenumberEnd: 2638
      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:2618,7'
          Dst:             check_error
        - Src:             'error.c:2622,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2627,14'
          Dst:             __errno_location
        - Src:             'error.c:2631,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2632,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_socket
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2588
      functionLinenumberEnd: 2612
      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:2592,7'
          Dst:             check_error
        - Src:             'error.c:2596,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2601,14'
          Dst:             __errno_location
        - Src:             'error.c:2605,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2606,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2562
      functionLinenumberEnd: 2586
      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:2566,7'
          Dst:             check_error
        - Src:             'error.c:2570,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2575,14'
          Dst:             __errno_location
        - Src:             'error.c:2579,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2580,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setsockopt
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2535
      functionLinenumberEnd: 2560
      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:2539,7'
          Dst:             check_error
        - Src:             'error.c:2543,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2549,14'
          Dst:             __errno_location
        - Src:             'error.c:2553,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2554,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setrlimit
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2508
      functionLinenumberEnd: 2532
      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:2512,7'
          Dst:             check_error
        - Src:             'error.c:2516,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2521,14'
          Dst:             __errno_location
        - Src:             'error.c:2525,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2526,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setreuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2481
      functionLinenumberEnd: 2505
      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:2485,7'
          Dst:             check_error
        - Src:             'error.c:2489,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2494,14'
          Dst:             __errno_location
        - Src:             'error.c:2498,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2499,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setresuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2455
      functionLinenumberEnd: 2479
      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:2459,7'
          Dst:             check_error
        - Src:             'error.c:2463,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2468,14'
          Dst:             __errno_location
        - Src:             'error.c:2472,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2473,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setresgid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2428
      functionLinenumberEnd: 2452
      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:2432,7'
          Dst:             check_error
        - Src:             'error.c:2436,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2441,14'
          Dst:             __errno_location
        - Src:             'error.c:2445,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2446,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setregid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2401
      functionLinenumberEnd: 2425
      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:2405,7'
          Dst:             check_error
        - Src:             'error.c:2409,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2414,14'
          Dst:             __errno_location
        - Src:             'error.c:2418,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2419,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setgid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2375
      functionLinenumberEnd: 2399
      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:2379,7'
          Dst:             check_error
        - Src:             'error.c:2383,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2388,14'
          Dst:             __errno_location
        - Src:             'error.c:2392,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2393,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_seteuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2349
      functionLinenumberEnd: 2373
      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:2353,7'
          Dst:             check_error
        - Src:             'error.c:2357,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2362,14'
          Dst:             __errno_location
        - Src:             'error.c:2366,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2367,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setegid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2323
      functionLinenumberEnd: 2347
      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:2327,7'
          Dst:             check_error
        - Src:             'error.c:2331,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2336,14'
          Dst:             __errno_location
        - Src:             'error.c:2340,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2341,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_rmdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2297
      functionLinenumberEnd: 2321
      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:2301,7'
          Dst:             check_error
        - Src:             'error.c:2305,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2310,14'
          Dst:             __errno_location
        - Src:             'error.c:2314,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2315,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_rename
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2271
      functionLinenumberEnd: 2295
      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:2275,7'
          Dst:             check_error
        - Src:             'error.c:2279,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2284,14'
          Dst:             __errno_location
        - Src:             'error.c:2288,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2289,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readv
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2244
      functionLinenumberEnd: 2268
      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:2248,7'
          Dst:             check_error
        - Src:             'error.c:2252,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2257,14'
          Dst:             __errno_location
        - Src:             'error.c:2261,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2262,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2217
      functionLinenumberEnd: 2241
      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:2221,7'
          Dst:             check_error
        - Src:             'error.c:2225,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2230,14'
          Dst:             __errno_location
        - Src:             'error.c:2234,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2235,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2190
      functionLinenumberEnd: 2214
      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:2194,7'
          Dst:             check_error
        - Src:             'error.c:2198,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2203,14'
          Dst:             __errno_location
        - Src:             'error.c:2207,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2208,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_read
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2164
      functionLinenumberEnd: 2188
      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:2168,7'
          Dst:             check_error
        - Src:             'error.c:2172,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2177,14'
          Dst:             __errno_location
        - Src:             'error.c:2181,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2182,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_opendir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2138
      functionLinenumberEnd: 2162
      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:2142,7'
          Dst:             check_error
        - Src:             'error.c:2146,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2151,14'
          Dst:             __errno_location
        - Src:             'error.c:2155,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2156,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_open
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2112
      functionLinenumberEnd: 2136
      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:2116,7'
          Dst:             check_error
        - Src:             'error.c:2120,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2125,14'
          Dst:             __errno_location
        - Src:             'error.c:2129,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2130,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkstemp
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2085
      functionLinenumberEnd: 2109
      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:2089,7'
          Dst:             check_error
        - Src:             'error.c:2093,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2098,14'
          Dst:             __errno_location
        - Src:             'error.c:2102,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2103,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkdtemp
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2059
      functionLinenumberEnd: 2083
      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:2063,7'
          Dst:             check_error
        - Src:             'error.c:2067,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2072,14'
          Dst:             __errno_location
        - Src:             'error.c:2076,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2077,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2057
      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:2037,7'
          Dst:             check_error
        - Src:             'error.c:2041,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2046,14'
          Dst:             __errno_location
        - Src:             'error.c:2050,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2051,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lstat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2007
      functionLinenumberEnd: 2031
      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:2011,7'
          Dst:             check_error
        - Src:             'error.c:2015,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2020,14'
          Dst:             __errno_location
        - Src:             'error.c:2024,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2025,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lseek
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 2004
      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:1984,7'
          Dst:             check_error
        - Src:             'error.c:1988,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1993,14'
          Dst:             __errno_location
        - Src:             'error.c:1997,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1998,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_listen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1978
      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:1958,7'
          Dst:             check_error
        - Src:             'error.c:1962,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1967,14'
          Dst:             __errno_location
        - Src:             'error.c:1971,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1972,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_link
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1928
      functionLinenumberEnd: 1952
      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:1932,7'
          Dst:             check_error
        - Src:             'error.c:1936,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1941,14'
          Dst:             __errno_location
        - Src:             'error.c:1945,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1946,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lchown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1901
      functionLinenumberEnd: 1925
      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:1905,7'
          Dst:             check_error
        - Src:             'error.c:1909,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1914,14'
          Dst:             __errno_location
        - Src:             'error.c:1918,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1919,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getsockopt
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1873
      functionLinenumberEnd: 1898
      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:1877,7'
          Dst:             check_error
        - Src:             'error.c:1881,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1887,14'
          Dst:             __errno_location
        - Src:             'error.c:1891,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1892,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getsockname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1870
      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:1850,7'
          Dst:             check_error
        - Src:             'error.c:1854,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1859,14'
          Dst:             __errno_location
        - Src:             'error.c:1863,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1864,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getrlimit
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1819
      functionLinenumberEnd: 1843
      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:1823,7'
          Dst:             check_error
        - Src:             'error.c:1827,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1832,14'
          Dst:             __errno_location
        - Src:             'error.c:1836,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1837,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getpeername
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1792
      functionLinenumberEnd: 1816
      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:1796,7'
          Dst:             check_error
        - Src:             'error.c:1800,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1805,14'
          Dst:             __errno_location
        - Src:             'error.c:1809,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1810,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getnameinfo
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1764
      functionLinenumberEnd: 1789
      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:1768,7'
          Dst:             check_error
        - Src:             'error.c:1772,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1778,14'
          Dst:             __errno_location
        - Src:             'error.c:1782,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1783,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1760
      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:1740,7'
          Dst:             check_error
        - Src:             'error.c:1744,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1749,14'
          Dst:             __errno_location
        - Src:             'error.c:1753,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1754,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostbyname2
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1734
      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:1714,7'
          Dst:             check_error
        - Src:             'error.c:1718,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1723,14'
          Dst:             __errno_location
        - Src:             'error.c:1727,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1728,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostbyname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1683
      functionLinenumberEnd: 1707
      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:1687,7'
          Dst:             check_error
        - Src:             'error.c:1691,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1696,14'
          Dst:             __errno_location
        - Src:             'error.c:1700,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1701,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getaddrinfo
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1656
      functionLinenumberEnd: 1681
      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:1660,7'
          Dst:             check_error
        - Src:             'error.c:1664,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1670,14'
          Dst:             __errno_location
        - Src:             'error.c:1674,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1675,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_futimes
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1653
      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:1633,7'
          Dst:             check_error
        - Src:             'error.c:1637,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1642,14'
          Dst:             __errno_location
        - Src:             'error.c:1646,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1647,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_ftruncate
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1626
      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:1606,7'
          Dst:             check_error
        - Src:             'error.c:1610,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1615,14'
          Dst:             __errno_location
        - Src:             'error.c:1619,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1620,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fsync
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1576
      functionLinenumberEnd: 1600
      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:1580,7'
          Dst:             check_error
        - Src:             'error.c:1584,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1589,14'
          Dst:             __errno_location
        - Src:             'error.c:1593,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1594,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstatvfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1550
      functionLinenumberEnd: 1574
      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:1554,7'
          Dst:             check_error
        - Src:             'error.c:1558,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1563,14'
          Dst:             __errno_location
        - Src:             'error.c:1567,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1568,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstatfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1524
      functionLinenumberEnd: 1548
      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:1528,7'
          Dst:             check_error
        - Src:             'error.c:1532,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1537,14'
          Dst:             __errno_location
        - Src:             'error.c:1541,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1542,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1498
      functionLinenumberEnd: 1522
      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:1502,7'
          Dst:             check_error
        - Src:             'error.c:1506,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1511,14'
          Dst:             __errno_location
        - Src:             'error.c:1515,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1516,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fork
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1496
      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:1476,7'
          Dst:             check_error
        - Src:             'error.c:1480,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1485,14'
          Dst:             __errno_location
        - Src:             'error.c:1489,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1490,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fopen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1470
      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:1450,7'
          Dst:             check_error
        - Src:             'error.c:1454,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1459,14'
          Dst:             __errno_location
        - Src:             'error.c:1463,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1464,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_flock
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1443
      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:1423,7'
          Dst:             check_error
        - Src:             'error.c:1427,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1432,14'
          Dst:             __errno_location
        - Src:             'error.c:1436,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1437,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fdopen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1393
      functionLinenumberEnd: 1417
      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:1397,7'
          Dst:             check_error
        - Src:             'error.c:1401,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1406,14'
          Dst:             __errno_location
        - Src:             'error.c:1410,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1411,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fcntl
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1367
      functionLinenumberEnd: 1391
      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:1371,7'
          Dst:             check_error
        - Src:             'error.c:1375,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1380,14'
          Dst:             __errno_location
        - Src:             'error.c:1384,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1385,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fclose
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1365
      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:1345,7'
          Dst:             check_error
        - Src:             'error.c:1349,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1354,14'
          Dst:             __errno_location
        - Src:             'error.c:1358,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1359,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fchown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1315
      functionLinenumberEnd: 1339
      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:1319,7'
          Dst:             check_error
        - Src:             'error.c:1323,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1328,14'
          Dst:             __errno_location
        - Src:             'error.c:1332,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1333,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fchmod
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1313
      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:1293,7'
          Dst:             check_error
        - Src:             'error.c:1297,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1302,14'
          Dst:             __errno_location
        - Src:             'error.c:1306,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1307,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_connect
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1287
      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:1267,7'
          Dst:             check_error
        - Src:             'error.c:1271,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1276,14'
          Dst:             __errno_location
        - Src:             'error.c:1280,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1281,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_closedir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1236
      functionLinenumberEnd: 1260
      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:1240,7'
          Dst:             check_error
        - Src:             'error.c:1244,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1249,14'
          Dst:             __errno_location
        - Src:             'error.c:1253,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1254,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_close
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1234
      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:1214,7'
          Dst:             check_error
        - Src:             'error.c:1218,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1223,14'
          Dst:             __errno_location
        - Src:             'error.c:1227,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1228,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chroot
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1208
      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:1188,7'
          Dst:             check_error
        - Src:             'error.c:1192,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1197,14'
          Dst:             __errno_location
        - Src:             'error.c:1201,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1202,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1182
      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:1162,7'
          Dst:             check_error
        - Src:             'error.c:1166,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1171,14'
          Dst:             __errno_location
        - Src:             'error.c:1175,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1176,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chmod
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1131
      functionLinenumberEnd: 1155
      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:1135,7'
          Dst:             check_error
        - Src:             'error.c:1139,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1144,14'
          Dst:             __errno_location
        - Src:             'error.c:1148,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1149,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1129
      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:1109,7'
          Dst:             check_error
        - Src:             'error.c:1113,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1118,14'
          Dst:             __errno_location
        - Src:             'error.c:1122,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1123,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_bind
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1079
      functionLinenumberEnd: 1103
      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:1083,7'
          Dst:             check_error
        - Src:             'error.c:1087,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1092,14'
          Dst:             __errno_location
        - Src:             'error.c:1096,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1097,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_accept
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1076
      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:1056,7'
          Dst:             check_error
        - Src:             'error.c:1060,10'
          Dst:             pr_error_set_why
        - Src:             'error.c:1065,14'
          Dst:             __errno_location
        - Src:             'error.c:1069,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1070,5'
          Dst:             __errno_location
    - functionName:    pr_error_set_why
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 400
      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:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:394,5'
          Dst:             __errno_location
        - Src:             'error.c:398,19'
          Dst:             pstrdup
    - functionName:    pr_error_use_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1013
      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:987,5'
          Dst:             __errno_location
        - Src:             'error.c:992,5'
          Dst:             __errno_location
        - Src:             'error.c:998,10'
          Dst:             strcmp
        - Src:             'error.c:1005,10'
          Dst:             strcmp
        - Src:             'error.c:1011,3'
          Dst:             __errno_location
    - functionName:    pr_error_unregister_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 979
      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:939,5'
          Dst:             __errno_location
        - Src:             'error.c:945,26'
          Dst:             strcmp
        - Src:             'error.c:975,5'
          Dst:             __errno_location
    - functionName:    pr_error_register_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 928
      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:891,5'
          Dst:             __errno_location
        - Src:             'error.c:899,12'
          Dst:             strcmp
        - Src:             'error.c:900,9'
          Dst:             __errno_location
        - Src:             'error.c:906,8'
          Dst:             pcalloc
        - Src:             'error.c:908,14'
          Dst:             pstrdup
        - Src:             'error.c:909,15'
          Dst:             pcalloc
    - functionName:    get_minimal_text
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 695
      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:688,18'
          Dst:             pstrcat
    - functionName:    get_terse_text
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 724
      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:711,18'
          Dst:             pstrcat
        - Src:             'error.c:720,18'
          Dst:             pstrcat
    - functionName:    get_oper
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 586
      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: 729
      functionLinenumberEnd: 791
      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:733,16'
          Dst:             pstrcat
        - Src:             'error.c:743,18'
          Dst:             pstrcat
        - Src:             'error.c:752,18'
          Dst:             pstrcat
        - Src:             'error.c:762,20'
          Dst:             pstrcat
        - Src:             'error.c:765,20'
          Dst:             pstrcat
        - Src:             'error.c:778,18'
          Dst:             pstrcat
        - Src:             'error.c:787,18'
          Dst:             pstrcat
    - functionName:    get_explained
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 675
      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: 647
      functionLinenumberEnd: 665
      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:652,3'
          Dst:             pr_snprintf
        - Src:             'error.c:655,21'
          Dst:             get_errno_name
        - Src:             'error.c:659,21'
          Dst:             get_errno_desc
        - Src:             'error.c:662,13'
          Dst:             pstrcat
    - functionName:    get_what
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 602
      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:594,14'
          Dst:             pstrcat
    - functionName:    get_where
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 576
      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:540,15'
          Dst:             pstrcat
        - Src:             'error.c:543,15'
          Dst:             pstrdup
        - Src:             'error.c:552,17'
          Dst:             pstrcat
        - Src:             'error.c:556,17'
          Dst:             pstrcat
        - Src:             'error.c:563,9'
          Dst:             pr_snprintf
        - Src:             'error.c:565,17'
          Dst:             pstrcat
        - Src:             'error.c:570,19'
          Dst:             pstrcat
    - functionName:    get_why
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 528
      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: 462
      functionLinenumberEnd: 518
      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:467,13'
          Dst:             pstrcat
        - Src:             'error.c:475,21'
          Dst:             get_uid
        - Src:             'error.c:474,15'
          Dst:             pstrcat
        - Src:             'error.c:478,46'
          Dst:             get_uid
        - Src:             'error.c:478,15'
          Dst:             pstrcat
        - Src:             'error.c:487,9'
          Dst:             get_gid
        - Src:             'error.c:486,13'
          Dst:             pstrcat
        - Src:             'error.c:489,15'
          Dst:             pstrcat
        - Src:             'error.c:496,42'
          Dst:             get_uid
        - Src:             'error.c:497,17'
          Dst:             get_gid
        - Src:             'error.c:496,11'
          Dst:             pstrcat
        - Src:             'error.c:507,15'
          Dst:             pr_session_get_protocol
        - Src:             'error.c:510,15'
          Dst:             pstrcat
        - Src:             'error.c:513,15'
          Dst:             pstrcat
    - functionName:    pr_error_strerror
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 882
      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:    20
      BranchProfiles:
        - Branch String:   'error.c:805,3'
          Branch Sides:    []
        - Branch String:   'error.c:833,3'
          Branch Sides:    []
      Callsites:
        - Src:             'error.c:798,21'
          Dst:             __errno_location
        - Src:             'error.c:798,12'
          Dst:             strerror
        - Src:             'error.c:830,14'
          Dst:             strerror
        - Src:             'error.c:837,13'
          Dst:             get_who
        - Src:             'error.c:838,13'
          Dst:             get_why
        - Src:             'error.c:839,15'
          Dst:             get_where
        - Src:             'error.c:840,14'
          Dst:             get_what
        - Src:             'error.c:841,17'
          Dst:             get_failure
        - Src:             'error.c:842,19'
          Dst:             get_explained
        - Src:             'error.c:844,18'
          Dst:             get_detailed_text
        - Src:             'error.c:855,14'
          Dst:             get_oper
        - Src:             'error.c:856,17'
          Dst:             get_failure
        - Src:             'error.c:857,19'
          Dst:             get_explained
        - Src:             'error.c:859,18'
          Dst:             get_terse_text
        - Src:             'error.c:866,14'
          Dst:             get_oper
        - Src:             'error.c:867,17'
          Dst:             get_failure
        - Src:             'error.c:869,18'
          Dst:             get_minimal_text
        - Src:             'error.c:878,12'
          Dst:             strerror
    - functionName:    pr_error_use_formats
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 443
      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: 428
      functionLinenumberEnd: 434
      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: 403
      functionLinenumberEnd: 415
      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:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:406,5'
          Dst:             __errno_location
    - functionName:    pr_error_get_who
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 389
      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:370,5'
          Dst:             __errno_location
        - Src:             'error.c:376,5'
          Dst:             __errno_location
    - functionName:    pr_error_destroy
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 366
      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:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:359,12'
          Dst:             __errno_location
        - Src:             'error.c:362,5'
          Dst:             destroy_pool
        - Src:             'error.c:365,3'
          Dst:             __errno_location
    - functionName:    pr_error_create
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 354
      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:334,5'
          Dst:             __errno_location
        - Src:             'error.c:338,14'
          Dst:             make_sub_pool
        - Src:             'error.c:339,3'
          Dst:             pr_pool_tag
        - Src:             'error.c:341,9'
          Dst:             pcalloc
        - Src:             'error.c:346,21'
          Dst:             pstrdup
        - Src:             'error.c:350,18'
          Dst:             geteuid
        - Src:             'error.c:351,18'
          Dst:             getegid
    - functionName:    parse_config_path
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1398
      functionLinenumberEnd: 1399
      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:1399,10'
          Dst:             parse_config_path2
    - functionName:    parse_config_path2
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1396
      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:1190,5'
          Dst:             __errno_location
        - Src:             'parser.c:1194,7'
          Dst:             pr_fs_valid_path
        - Src:             'parser.c:1195,5'
          Dst:             __errno_location
        - Src:             'parser.c:1199,15'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1210,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1213,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1217,7'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1229,5'
          Dst:             pr_privs_root
        - Src:             'parser.c:1230,11'
          Dst:             pr_parser_parse_file
        - Src:             'parser.c:1231,14'
          Dst:             __errno_location
        - Src:             'parser.c:1232,5'
          Dst:             pr_privs_relinquish
        - Src:             'parser.c:1234,5'
          Dst:             __errno_location
        - Src:             'parser.c:1238,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:1239,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:1242,14'
          Dst:             pstrdup
        - Src:             'parser.c:1244,9'
          Dst:             strrchr
        - Src:             'parser.c:1258,21'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1263,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1265,9'
          Dst:             destroy_pool
        - Src:             'parser.c:1266,9'
          Dst:             __errno_location
        - Src:             'parser.c:1271,18'
          Dst:             pstrdup
        - Src:             'parser.c:1272,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1274,14'
          Dst:             parse_wildcard_config_path
        - Src:             'parser.c:1280,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1281,9'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1282,20'
          Dst:             __errno_location
        - Src:             'parser.c:1286,9'
          Dst:             strerror
        - Src:             'parser.c:1284,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1288,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1289,7'
          Dst:             __errno_location
        - Src:             'parser.c:1295,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1297,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1298,7'
          Dst:             __errno_location
        - Src:             'parser.c:1303,9'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1304,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1306,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1307,7'
          Dst:             __errno_location
        - Src:             'parser.c:1312,3'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1315,10'
          Dst:             pr_fsio_opendir
        - Src:             'parser.c:1319,16'
          Dst:             __errno_location
        - Src:             'parser.c:1319,7'
          Dst:             strerror
        - Src:             'parser.c:1317,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1320,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1321,5'
          Dst:             __errno_location
        - Src:             'parser.c:1325,15'
          Dst:             make_array
        - Src:             'parser.c:1327,18'
          Dst:             pr_fsio_readdir
        - Src:             'parser.c:1328,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1330,9'
          Dst:             strcmp
        - Src:             'parser.c:1331,9'
          Dst:             strcmp
        - Src:             'parser.c:1336,11'
          Dst:             is_tmp_file
        - Src:             'parser.c:1337,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1346,10'
          Dst:             pr_fnmatch
        - Src:             'parser.c:1347,44'
          Dst:             pdircat
        - Src:             'parser.c:1347,19'
          Dst:             push_array
        - Src:             'parser.c:1352,3'
          Dst:             pr_fsio_closedir
        - Src:             'parser.c:1357,5'
          Dst:             qsort
        - Src:             'parser.c:1357,5'
          Dst:             config_filename_cmp
        - Src:             'parser.c:1371,7'
          Dst:             pr_privs_root
        - Src:             'parser.c:1372,13'
          Dst:             pr_parser_parse_file
        - Src:             'parser.c:1373,16'
          Dst:             __errno_location
        - Src:             'parser.c:1374,7'
          Dst:             pr_privs_relinquish
        - Src:             'parser.c:1378,57'
          Dst:             strerror
        - Src:             'parser.c:1377,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1379,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1382,9'
          Dst:             destroy_pool
        - Src:             'parser.c:1388,9'
          Dst:             __errno_location
        - Src:             'parser.c:1394,3'
          Dst:             destroy_pool
    - functionName:    pr_parser_parse_file
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 635
      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:385,5'
          Dst:             __errno_location
        - Src:             'parser.c:390,5'
          Dst:             __errno_location
        - Src:             'parser.c:394,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:395,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:399,19'
          Dst:             pdircat
        - Src:             'parser.c:403,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:406,8'
          Dst:             pr_fsio_open
        - Src:             'parser.c:408,18'
          Dst:             __errno_location
        - Src:             'parser.c:410,5'
          Dst:             destroy_pool
        - Src:             'parser.c:412,5'
          Dst:             __errno_location
        - Src:             'parser.c:418,7'
          Dst:             pr_fsio_fstat
        - Src:             'parser.c:419,18'
          Dst:             __errno_location
        - Src:             'parser.c:421,5'
          Dst:             pr_fsio_close
        - Src:             'parser.c:422,5'
          Dst:             destroy_pool
        - Src:             'parser.c:424,5'
          Dst:             __errno_location
        - Src:             'parser.c:429,5'
          Dst:             pr_fsio_close
        - Src:             'parser.c:430,5'
          Dst:             destroy_pool
        - Src:             'parser.c:432,5'
          Dst:             __errno_location
        - Src:             'parser.c:439,3'
          Dst:             pr_fs_fadvise
        - Src:             'parser.c:447,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:456,8'
          Dst:             add_config_source
        - Src:             'parser.c:459,12'
          Dst:             pr_parser_config_ctxt_push
        - Src:             'parser.c:463,9'
          Dst:             pcalloc
        - Src:             'parser.c:465,10'
          Dst:             pr_parser_read_line
        - Src:             'parser.c:469,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:475,19'
          Dst:             make_sub_pool
        - Src:             'parser.c:476,19'
          Dst:             pcalloc
        - Src:             'parser.c:477,25'
          Dst:             pstrdup
        - Src:             'parser.c:481,11'
          Dst:             pr_parser_parse_line
        - Src:             'parser.c:483,7'
          Dst:             destroy_pool
        - Src:             'parser.c:491,5'
          Dst:             pr_event_generate
        - Src:             'parser.c:492,5'
          Dst:             destroy_pool
        - Src:             'parser.c:501,17'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:506,9'
          Dst:             pr_signals_handle
        - Src:             'parser.c:510,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:514,14'
          Dst:             pr_module_call
        - Src:             'parser.c:518,15'
          Dst:             pr_log_pri
        - Src:             'parser.c:520,15'
          Dst:             destroy_pool
        - Src:             'parser.c:521,15'
          Dst:             __errno_location
        - Src:             'parser.c:525,13'
          Dst:             pr_log_pri
        - Src:             'parser.c:534,19'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:539,9'
          Dst:             destroy_pool
        - Src:             'parser.c:562,19'
          Dst:             strlen
        - Src:             'parser.c:572,11'
          Dst:             pr_log_pri
        - Src:             'parser.c:575,13'
          Dst:             pr_log_pri
        - Src:             'parser.c:581,26'
          Dst:             get_all_directives
        - Src:             'parser.c:582,24'
          Dst:             pr_str_get_similars
        - Src:             'parser.c:598,23'
          Dst:             pstrcat
        - Src:             'parser.c:602,25'
          Dst:             pstrcat
        - Src:             'parser.c:606,15'
          Dst:             pr_log_pri
        - Src:             'parser.c:610,11'
          Dst:             destroy_pool
        - Src:             'parser.c:611,11'
          Dst:             __errno_location
        - Src:             'parser.c:615,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:618,11'
          Dst:             pr_log_pri
        - Src:             'parser.c:624,5'
          Dst:             destroy_pool
        - Src:             'parser.c:629,3'
          Dst:             remove_config_source
        - Src:             'parser.c:631,3'
          Dst:             pr_fsio_close
        - Src:             'parser.c:633,3'
          Dst:             destroy_pool
    - functionName:    parse_wildcard_config_path
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1176
      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:997,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1000,5'
          Dst:             __errno_location
        - Src:             'parser.c:1004,14'
          Dst:             strlen
        - Src:             'parser.c:1006,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1012,5'
          Dst:             __errno_location
        - Src:             'parser.c:1016,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:1017,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:1025,17'
          Dst:             pstrdup
        - Src:             'parser.c:1032,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1034,11'
          Dst:             strchr
        - Src:             'parser.c:1039,23'
          Dst:             strlen
        - Src:             'parser.c:1043,9'
          Dst:             memchr
        - Src:             'parser.c:1044,9'
          Dst:             memchr
        - Src:             'parser.c:1045,9'
          Dst:             memchr
        - Src:             'parser.c:1047,22'
          Dst:             pstrndup
        - Src:             'parser.c:1050,23'
          Dst:             pstrdup
        - Src:             'parser.c:1057,7'
          Dst:             pstrndup
        - Src:             'parser.c:1056,19'
          Dst:             pdircat
        - Src:             'parser.c:1067,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1069,5'
          Dst:             __errno_location
        - Src:             'parser.c:1073,3'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1076,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1077,9'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1078,12'
          Dst:             __errno_location
        - Src:             'parser.c:1083,7'
          Dst:             strerror
        - Src:             'parser.c:1081,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1085,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1086,5'
          Dst:             __errno_location
        - Src:             'parser.c:1092,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1094,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1095,5'
          Dst:             __errno_location
        - Src:             'parser.c:1099,3'
          Dst:             pr_log_pri
        - Src:             'parser.c:1103,10'
          Dst:             pr_fsio_opendir
        - Src:             'parser.c:1107,16'
          Dst:             __errno_location
        - Src:             'parser.c:1107,7'
          Dst:             strerror
        - Src:             'parser.c:1105,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1108,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1109,5'
          Dst:             __errno_location
        - Src:             'parser.c:1113,18'
          Dst:             make_array
        - Src:             'parser.c:1115,18'
          Dst:             pr_fsio_readdir
        - Src:             'parser.c:1116,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1118,9'
          Dst:             strcmp
        - Src:             'parser.c:1119,9'
          Dst:             strcmp
        - Src:             'parser.c:1124,11'
          Dst:             is_tmp_file
        - Src:             'parser.c:1125,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1132,9'
          Dst:             pr_fnmatch
        - Src:             'parser.c:1133,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1137,47'
          Dst:             pdircat
        - Src:             'parser.c:1137,19'
          Dst:             push_array
        - Src:             'parser.c:1142,3'
          Dst:             pr_fsio_closedir
        - Src:             'parser.c:1145,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1147,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1148,5'
          Dst:             __errno_location
        - Src:             'parser.c:1154,3'
          Dst:             qsort
        - Src:             'parser.c:1154,3'
          Dst:             config_filename_cmp
        - Src:             'parser.c:1161,11'
          Dst:             parse_config_path2
        - Src:             'parser.c:1163,16'
          Dst:             __errno_location
        - Src:             'parser.c:1166,22'
          Dst:             strerror
        - Src:             'parser.c:1165,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1168,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1169,7'
          Dst:             __errno_location
        - Src:             'parser.c:1174,3'
          Dst:             destroy_pool
    - functionName:    is_tmp_file
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 977
      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:971,9'
          Dst:             pr_fnmatch
    - functionName:    config_filename_cmp
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 980
      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:980,10'
          Dst:             strcmp
    - functionName:    add_config_source
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 90
      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:73,7'
          Dst:             pr_pool_create_sz
        - Src:             'parser.c:74,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:76,8'
          Dst:             pcalloc
    - functionName:    pr_parser_config_ctxt_push
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 340
      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:322,5'
          Dst:             __errno_location
        - Src:             'parser.c:327,5'
          Dst:             __errno_location
        - Src:             'parser.c:335,42'
          Dst:             push_array
    - functionName:    pr_parser_read_line
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 867
      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:803,5'
          Dst:             __errno_location
        - Src:             'parser.c:808,5'
          Dst:             __errno_location
        - Src:             'parser.c:816,11'
          Dst:             pr_fsio_getline
        - Src:             'parser.c:821,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:823,14'
          Dst:             strlen
        - Src:             'parser.c:841,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:847,31'
          Dst:             __ctype_b_loc
    - functionName:    pr_parser_parse_line
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          381
      EdgeCount:       65
      CyclomaticComplexity: 18
      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:646,5'
          Dst:             __errno_location
        - Src:             'parser.c:651,16'
          Dst:             strlen
        - Src:             'parser.c:655,5'
          Dst:             __errno_location
        - Src:             'parser.c:662,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:663,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:665,9'
          Dst:             pcalloc
        - Src:             'parser.c:671,9'
          Dst:             make_array
        - Src:             'parser.c:672,18'
          Dst:             pr_str_get_word
        - Src:             'parser.c:676,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:677,12'
          Dst:             get_config_word
        - Src:             'parser.c:684,9'
          Dst:             strchr
        - Src:             'parser.c:687,23'
          Dst:             pr_str_get_word
        - Src:             'parser.c:688,9'
          Dst:             pr_signals_handle
        - Src:             'parser.c:690,40'
          Dst:             pstrdup
        - Src:             'parser.c:690,21'
          Dst:             push_array
        - Src:             'parser.c:695,19'
          Dst:             push_array
        - Src:             'parser.c:701,15'
          Dst:             push_array
        - Src:             'parser.c:726,14'
          Dst:             strlen
        - Src:             'parser.c:731,11'
          Dst:             strcmp
        - Src:             'parser.c:740,16'
          Dst:             strlen
        - Src:             'parser.c:742,24'
          Dst:             pstrcat
        - Src:             'parser.c:748,11'
          Dst:             pstrdup
        - Src:             'parser.c:752,11'
          Dst:             pstrcat
    - functionName:    get_all_directives
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 371
      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:353,11'
          Dst:             make_array
        - Src:             'parser.c:357,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:359,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:362,46'
          Dst:             pstrdup
        - Src:             'parser.c:362,25'
          Dst:             push_array
        - Src:             'parser.c:368,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    remove_config_source
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 177
      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:175,5'
          Dst:             destroy_pool
    - functionName:    get_config_word
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          156
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - pr_env_get
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - pstrndup
        - sreplace
        - strchr
        - strlen
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:101,13'
          Dst:             strlen
        - Src:             'parser.c:105,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:113,11'
          Dst:             strstr
        - Src:             'parser.c:118,7'
          Dst:             pr_signals_handle
        - Src:             'parser.c:120,14'
          Dst:             strchr
        - Src:             'parser.c:126,15'
          Dst:             strstr
        - Src:             'parser.c:131,13'
          Dst:             pstrndup
        - Src:             'parser.c:133,13'
          Dst:             pstrndup
        - Src:             'parser.c:135,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:137,13'
          Dst:             pr_env_get
        - Src:             'parser.c:142,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:145,25'
          Dst:             sreplace
        - Src:             'parser.c:146,15'
          Dst:             strstr
        - Src:             'parser.c:150,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:154,23'
          Dst:             sreplace
        - Src:             'parser.c:155,13'
          Dst:             strstr
        - Src:             'parser.c:163,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:167,10'
          Dst:             pstrdup
    - functionName:    pr_parser_set_include_opts
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 958
      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: 913
      functionLinenumberEnd: 949
      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:917,7'
          Dst:             make_sub_pool
        - Src:             'parser.c:918,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:920,22'
          Dst:             pcalloc
        - Src:             'parser.c:924,14'
          Dst:             pr_table_nalloc
        - Src:             'parser.c:930,22'
          Dst:             palloc
        - Src:             'parser.c:939,3'
          Dst:             xaset_insert_end
        - Src:             'parser.c:942,24'
          Dst:             pstrdup
        - Src:             'parser.c:946,19'
          Dst:             pr_inet_getservport
        - Src:             'parser.c:948,10'
          Dst:             pr_parser_server_ctxt_push
    - functionName:    pr_parser_server_ctxt_push
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 911
      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:898,5'
          Dst:             __errno_location
        - Src:             'parser.c:903,5'
          Dst:             __errno_location
        - Src:             'parser.c:907,40'
          Dst:             push_array
    - functionName:    pr_parser_server_ctxt_get
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 894
      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:892,3'
          Dst:             __errno_location
    - functionName:    pr_parser_server_ctxt_close
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 885
      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:871,5'
          Dst:             __errno_location
        - Src:             'parser.c:877,5'
          Dst:             __errno_location
    - functionName:    pr_parser_prepare
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 785
      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:763,21'
          Dst:             make_sub_pool
        - Src:             'parser.c:764,7'
          Dst:             pr_pool_tag
        - Src:             'parser.c:777,22'
          Dst:             make_array
        - Src:             'parser.c:778,40'
          Dst:             push_array
        - Src:             'parser.c:781,22'
          Dst:             make_array
        - Src:             'parser.c:782,40'
          Dst:             push_array
    - functionName:    pr_parser_get_lineno
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 343
      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: 257
      functionLinenumberEnd: 318
      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:263,5'
          Dst:             __errno_location
        - Src:             'parser.c:283,7'
          Dst:             strcasecmp
        - Src:             'parser.c:285,28'
          Dst:             make_sub_pool
        - Src:             'parser.c:286,7'
          Dst:             pr_pool_tag
        - Src:             'parser.c:292,12'
          Dst:             make_sub_pool
        - Src:             'parser.c:293,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:295,22'
          Dst:             pcalloc
        - Src:             'parser.c:298,22'
          Dst:             make_sub_pool
        - Src:             'parser.c:299,12'
          Dst:             xaset_create
        - Src:             'parser.c:303,3'
          Dst:             xaset_insert
        - Src:             'parser.c:308,13'
          Dst:             pstrdup
        - Src:             'parser.c:316,10'
          Dst:             pr_parser_config_ctxt_push
    - functionName:    pr_parser_config_ctxt_get
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 255
      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:253,3'
          Dst:             __errno_location
    - functionName:    pr_parser_config_ctxt_close
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 246
      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:217,7'
          Dst:             xaset_remove
        - Src:             'parser.c:218,7'
          Dst:             destroy_pool
        - Src:             'parser.c:234,5'
          Dst:             xaset_remove
        - Src:             'parser.c:235,5'
          Dst:             destroy_pool
    - functionName:    pr_parser_cleanup
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 204
      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:186,7'
          Dst:             __errno_location
        - Src:             'parser.c:190,5'
          Dst:             destroy_pool
    - functionName:    regexp_cleanup
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 170
      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:161,9'
          Dst:             regexp_free
        - Src:             'regexp.c:166,5'
          Dst:             destroy_pool
    - functionName:    regexp_free
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 151
      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:144,5'
          Dst:             regfree
        - Src:             'regexp.c:150,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: 172
      functionLinenumberEnd: 174
      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:173,3'
          Dst:             regexp_cleanup
    - functionName:    regexp_restart_ev
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 178
      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:177,3'
          Dst:             regexp_cleanup
    - functionName:    init_regexp
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 993
      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:985,3'
          Dst:             pr_event_register
        - Src:             'regexp.c:985,3'
          Dst:             regexp_restart_ev
        - Src:             'regexp.c:986,3'
          Dst:             pr_event_register
        - Src:             'regexp.c:986,3'
          Dst:             regexp_exit_ev
    - functionName:    pr_regexp_set_engine
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 974
      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:900,5'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:904,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:905,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:906,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:907,5'
          Dst:             __errno_location
        - Src:             'regexp.c:964,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:965,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:966,5'
          Dst:             __errno_location
    - functionName:    pr_regexp_set_limits
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 888
      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: 763
      functionLinenumberEnd: 816
      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:768,5'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:766,3'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:772,9'
          Dst:             regexec
        - Src:             'regexp.c:777,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:775,5'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:780,10'
          Dst:             pr_trace_get_level
        - Src:             'regexp.c:797,12'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:795,10'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:803,9'
          Dst:             pr_trace_get_level
        - Src:             'regexp.c:812,10'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:810,7'
          Dst:             pr_trace_msg
    - functionName:    pr_regexp_get_pattern
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 440
      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:430,5'
          Dst:             __errno_location
        - Src:             'regexp.c:435,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: 821
      functionLinenumberEnd: 874
      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:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:826,5'
          Dst:             __errno_location
        - Src:             'regexp.c:864,9'
          Dst:             regexp_exec_posix
    - functionName:    pr_regexp_error
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 426
      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:421,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: 358
      functionLinenumberEnd: 389
      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:389,10'
          Dst:             pr_regexp_compile_posix
    - functionName:    pr_regexp_compile_posix
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 356
      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:328,5'
          Dst:             __errno_location
        - Src:             'regexp.c:333,5'
          Dst:             regfree
        - Src:             'regexp.c:337,3'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:339,18'
          Dst:             pstrdup
        - Src:             'regexp.c:348,13'
          Dst:             pcalloc
        - Src:             'regexp.c:352,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: 206
      functionLinenumberEnd: 227
      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:223,7'
          Dst:             regexp_free
    - functionName:    pr_regexp_alloc
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 203
      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:188,19'
          Dst:             make_sub_pool
        - Src:             'regexp.c:189,5'
          Dst:             pr_pool_tag
        - Src:             'regexp.c:190,19'
          Dst:             make_array
        - Src:             'regexp.c:193,13'
          Dst:             pr_pool_create_sz
        - Src:             'regexp.c:194,3'
          Dst:             pr_pool_tag
        - Src:             'regexp.c:196,9'
          Dst:             pcalloc
        - Src:             'regexp.c:201,21'
          Dst:             push_array
    - functionName:    gid_hash_cb
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 84
      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: 60
      functionLinenumberEnd: 63
      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: 67
      functionLinenumberEnd: 74
      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: 53
      functionLinenumberEnd: 56
      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: 2419
      functionLinenumberEnd: 2425
      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:2421,17'
          Dst:             make_sub_pool
        - Src:             'auth.c:2422,5'
          Dst:             pr_pool_tag
    - functionName:    pr_auth_bcrypt
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2396
      functionLinenumberEnd: 2416
      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:2403,5'
          Dst:             __errno_location
        - Src:             'auth.c:2407,7'
          Dst:             bcrypt_hashpass
        - Src:             'auth.c:2411,9'
          Dst:             palloc
    - functionName:    pr_auth_set_max_password_len
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2379
      functionLinenumberEnd: 2392
      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: 2276
      functionLinenumberEnd: 2317
      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:2280,5'
          Dst:             __errno_location
        - Src:             'auth.c:2288,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2294,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2296,5'
          Dst:             __errno_location
        - Src:             'auth.c:2302,9'
          Dst:             strcmp
        - Src:             'auth.c:2303,11'
          Dst:             xaset_remove
        - Src:             'auth.c:2305,44'
          Dst:             __errno_location
        - Src:             'auth.c:2305,35'
          Dst:             strerror
        - Src:             'auth.c:2304,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2309,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2315,3'
          Dst:             __errno_location
    - functionName:    pr_auth_clear_auth_only_modules
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2265
      functionLinenumberEnd: 2274
      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:2267,5'
          Dst:             __errno_location
        - Src:             'auth.c:2272,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_add_auth_only_module
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2217
      functionLinenumberEnd: 2263
      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:2221,5'
          Dst:             __errno_location
        - Src:             'auth.c:2226,17'
          Dst:             make_sub_pool
        - Src:             'auth.c:2227,5'
          Dst:             pr_pool_tag
        - Src:             'auth.c:2234,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2240,24'
          Dst:             xaset_create
        - Src:             'auth.c:2246,9'
          Dst:             strcmp
        - Src:             'auth.c:2247,7'
          Dst:             __errno_location
        - Src:             'auth.c:2252,9'
          Dst:             pcalloc
        - Src:             'auth.c:2253,15'
          Dst:             pstrdup
        - Src:             'auth.c:2255,7'
          Dst:             xaset_insert_end
        - Src:             'auth.c:2257,40'
          Dst:             __errno_location
        - Src:             'auth.c:2257,31'
          Dst:             strerror
        - Src:             'auth.c:2256,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2261,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_cache_set
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2101
      functionLinenumberEnd: 2215
      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:2104,5'
          Dst:             __errno_location
        - Src:             'auth.c:2111,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2116,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2121,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2127,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2133,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2139,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2145,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2151,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2157,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2165,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2170,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2175,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2180,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2185,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2191,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2197,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2203,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2209,7'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_cache_clear
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2069
      functionLinenumberEnd: 2099
      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:2071,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2072,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2077,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2078,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2083,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2084,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2089,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2090,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2095,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2096,5'
          Dst:             pr_table_free
    - functionName:    set_groups
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1941
      functionLinenumberEnd: 2067
      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:1955,7'
          Dst:             getuid
        - Src:             'auth.c:1960,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1962,5'
          Dst:             __errno_location
        - Src:             'auth.c:1972,11'
          Dst:             setgid
        - Src:             'auth.c:1987,11'
          Dst:             setgid
        - Src:             'auth.c:1993,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:1994,3'
          Dst:             pr_pool_tag
        - Src:             'auth.c:1996,15'
          Dst:             pcalloc
        - Src:             'auth.c:2026,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:2029,15'
          Dst:             pstrcat
        - Src:             'auth.c:2032,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:2036,9'
          Dst:             setgroups
        - Src:             'auth.c:2038,18'
          Dst:             __errno_location
        - Src:             'auth.c:2040,5'
          Dst:             destroy_pool
        - Src:             'auth.c:2042,5'
          Dst:             __errno_location
        - Src:             'auth.c:2049,9'
          Dst:             setgid
        - Src:             'auth.c:2051,18'
          Dst:             __errno_location
        - Src:             'auth.c:2054,7'
          Dst:             destroy_pool
        - Src:             'auth.c:2057,5'
          Dst:             __errno_location
        - Src:             'auth.c:2063,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: 1862
      functionLinenumberEnd: 1939
      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:1871,5'
          Dst:             __errno_location
        - Src:             'auth.c:1884,8'
          Dst:             pr_env_get
        - Src:             'auth.c:1886,40'
          Dst:             pstrdup
        - Src:             'auth.c:1886,9'
          Dst:             pr_env_set
        - Src:             'auth.c:1889,42'
          Dst:             __errno_location
        - Src:             'auth.c:1889,33'
          Dst:             strerror
        - Src:             'auth.c:1888,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1892,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1896,5'
          Dst:             pr_log_debug
        - Src:             'auth.c:1899,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:1905,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:1906,9'
          Dst:             time
        - Src:             'auth.c:1907,10'
          Dst:             pr_localtime
        - Src:             'auth.c:1909,3'
          Dst:             pr_event_generate
        - Src:             'auth.c:1911,3'
          Dst:             pr_privs_root
        - Src:             'auth.c:1912,9'
          Dst:             pr_fsio_chroot_with_error
        - Src:             'auth.c:1913,12'
          Dst:             __errno_location
        - Src:             'auth.c:1914,3'
          Dst:             pr_privs_relinquish
        - Src:             'auth.c:1917,5'
          Dst:             pr_error_set_where
        - Src:             'auth.c:1918,27'
          Dst:             pstrcat
        - Src:             'auth.c:1918,5'
          Dst:             pr_error_set_why
        - Src:             'auth.c:1922,36'
          Dst:             pr_error_strerror
        - Src:             'auth.c:1922,7'
          Dst:             pr_log_pri
        - Src:             'auth.c:1923,7'
          Dst:             pr_error_destroy
        - Src:             'auth.c:1928,52'
          Dst:             strerror
        - Src:             'auth.c:1927,7'
          Dst:             pr_log_pri
        - Src:             'auth.c:1931,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1932,5'
          Dst:             __errno_location
        - Src:             'auth.c:1936,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:1937,3'
          Dst:             destroy_pool
    - functionName:    pr_auth_is_valid_shell
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1819
      functionLinenumberEnd: 1860
      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:1827,25'
          Dst:             get_param_ptr
        - Src:             'auth.c:1834,10'
          Dst:             fopen
        - Src:             'auth.c:1842,12'
          Dst:             fgets
        - Src:             'auth.c:1843,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1846,7'
          Dst:             pr_str_strip_end
        - Src:             'auth.c:1848,11'
          Dst:             strcmp
        - Src:             'auth.c:1856,5'
          Dst:             fclose
    - functionName:    pr_auth_banned_by_ftpusers
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1758
      functionLinenumberEnd: 1817
      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:1766,19'
          Dst:             get_param_ptr
        - Src:             'auth.c:1773,5'
          Dst:             pr_privs_root
        - Src:             'auth.c:1774,10'
          Dst:             fopen
        - Src:             'auth.c:1775,14'
          Dst:             __errno_location
        - Src:             'auth.c:1776,5'
          Dst:             pr_privs_relinquish
        - Src:             'auth.c:1781,15'
          Dst:             strerror
        - Src:             'auth.c:1779,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1787,12'
          Dst:             fgets
        - Src:             'auth.c:1790,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1793,7'
          Dst:             pr_str_strip_end
        - Src:             'auth.c:1796,14'
          Dst:             __ctype_b_loc
        - Src:             'auth.c:1805,11'
          Dst:             strcmp
        - Src:             'auth.c:1813,5'
          Dst:             fclose
    - functionName:    pr_auth_get_anon_config
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1755
      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:1551,22'
          Dst:             get_param_ptr
        - Src:             'auth.c:1569,7'
          Dst:             find_config2
        - Src:             'auth.c:1575,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1578,11'
          Dst:             strcmp
        - Src:             'auth.c:1579,11'
          Dst:             strcmp
        - Src:             'auth.c:1585,19'
          Dst:             find_config_next2
        - Src:             'auth.c:1596,29'
          Dst:             get_param_ptr
        - Src:             'auth.c:1598,5'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1603,11'
          Dst:             find_config_next2
        - Src:             'auth.c:1616,5'
          Dst:             find_config_set_top
        - Src:             'auth.c:1617,9'
          Dst:             find_config_next2
        - Src:             'auth.c:1621,10'
          Dst:             strcmp
        - Src:             'auth.c:1622,10'
          Dst:             strcmp
        - Src:             'auth.c:1649,9'
          Dst:             find_config
        - Src:             'auth.c:1652,5'
          Dst:             find_config_set_top
        - Src:             'auth.c:1664,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1666,26'
          Dst:             get_param_ptr
        - Src:             'auth.c:1672,11'
          Dst:             strcmp
        - Src:             'auth.c:1683,19'
          Dst:             find_config_next
        - Src:             'auth.c:1690,23'
          Dst:             get_param_ptr
        - Src:             'auth.c:1708,27'
          Dst:             get_param_ptr
        - Src:             'auth.c:1735,23'
          Dst:             get_param_ptr
        - Src:             'auth.c:1748,24'
          Dst:             get_param_ptr
    - functionName:    pr_auth_getgroups
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1461
      functionLinenumberEnd: 1535
      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:1468,5'
          Dst:             __errno_location
        - Src:             'auth.c:1474,18'
          Dst:             make_array
        - Src:             'auth.c:1478,20'
          Dst:             make_array
        - Src:             'auth.c:1481,9'
          Dst:             make_cmd
        - Src:             'auth.c:1484,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1503,9'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1505,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:1504,19'
          Dst:             pstrcat
        - Src:             'auth.c:1508,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1519,9'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1520,21'
          Dst:             pstrcat
        - Src:             'auth.c:1523,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1530,5'
          Dst:             destroy_pool
    - functionName:    make_cmd
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 399
      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:369,7'
          Dst:             pcalloc
        - Src:             'auth.c:377,15'
          Dst:             pcalloc
        - Src:             'auth.c:391,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:392,3'
          Dst:             pr_pool_tag
        - Src:             'auth.c:395,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:396,3'
          Dst:             pr_pool_tag
    - functionName:    dispatch_auth
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 473
      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:406,15'
          Dst:             pr_stash_get_symbol2
        - Src:             'auth.c:409,18'
          Dst:             __errno_location
        - Src:             'auth.c:412,14'
          Dst:             strerror
        - Src:             'auth.c:411,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:413,12'
          Dst:             strerror
        - Src:             'auth.c:413,12'
          Dst:             mod_create_ret
        - Src:             'auth.c:419,5'
          Dst:             pr_signals_handle
        - Src:             'auth.c:425,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:429,10'
          Dst:             pr_module_call
        - Src:             'auth.c:437,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:459,16'
          Dst:             pr_stash_get_symbol2
        - Src:             'auth.c:466,7'
          Dst:             pr_trace_msg
    - functionName:    groupcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 355
      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:339,9'
          Dst:             pr_table_get
        - Src:             'auth.c:344,56'
          Dst:             pr_gid2str
        - Src:             'auth.c:343,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:350,73'
          Dst:             __errno_location
        - Src:             'auth.c:350,64'
          Dst:             strerror
        - Src:             'auth.c:349,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:353,3'
          Dst:             __errno_location
    - functionName:    groupcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 299
      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:297,17'
          Dst:             pr_table_alloc
    - functionName:    pr_auth_name2gid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1458
      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:1410,5'
          Dst:             __errno_location
        - Src:             'auth.c:1414,3'
          Dst:             groupcache_create
        - Src:             'auth.c:1419,9'
          Dst:             groupcache_get
        - Src:             'auth.c:1423,9'
          Dst:             __errno_location
        - Src:             'auth.c:1430,9'
          Dst:             make_cmd
        - Src:             'auth.c:1431,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1438,7'
          Dst:             groupcache_add
        - Src:             'auth.c:1444,5'
          Dst:             __errno_location
        - Src:             'auth.c:1448,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1454,5'
          Dst:             groupcache_add
    - functionName:    groupcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 333
      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:302,3'
          Dst:             groupcache_create
        - Src:             'auth.c:307,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:308,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:316,20'
          Dst:             pstrdup
        - Src:             'auth.c:317,19'
          Dst:             palloc
        - Src:             'auth.c:320,11'
          Dst:             pr_table_add
        - Src:             'auth.c:321,11'
          Dst:             __errno_location
        - Src:             'auth.c:324,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:324,49'
          Dst:             __errno_location
        - Src:             'auth.c:324,40'
          Dst:             strerror
        - Src:             'auth.c:322,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:329,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:327,9'
          Dst:             pr_trace_msg
    - functionName:    usercache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 292
      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:276,9'
          Dst:             pr_table_get
        - Src:             'auth.c:281,54'
          Dst:             pr_uid2str
        - Src:             'auth.c:280,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:287,71'
          Dst:             __errno_location
        - Src:             'auth.c:287,62'
          Dst:             strerror
        - Src:             'auth.c:286,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:290,3'
          Dst:             __errno_location
    - functionName:    usercache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 236
      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:234,16'
          Dst:             pr_table_alloc
    - functionName:    pr_auth_name2uid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1399
      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:1351,5'
          Dst:             __errno_location
        - Src:             'auth.c:1355,3'
          Dst:             usercache_create
        - Src:             'auth.c:1360,9'
          Dst:             usercache_get
        - Src:             'auth.c:1364,9'
          Dst:             __errno_location
        - Src:             'auth.c:1371,9'
          Dst:             make_cmd
        - Src:             'auth.c:1372,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1379,7'
          Dst:             usercache_add
        - Src:             'auth.c:1385,5'
          Dst:             __errno_location
        - Src:             'auth.c:1389,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1395,5'
          Dst:             usercache_add
    - functionName:    usercache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 270
      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:239,3'
          Dst:             usercache_create
        - Src:             'auth.c:244,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:245,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:253,20'
          Dst:             pstrdup
        - Src:             'auth.c:254,19'
          Dst:             palloc
        - Src:             'auth.c:257,11'
          Dst:             pr_table_add
        - Src:             'auth.c:258,11'
          Dst:             __errno_location
        - Src:             'auth.c:261,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:261,49'
          Dst:             __errno_location
        - Src:             'auth.c:261,40'
          Dst:             strerror
        - Src:             'auth.c:259,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:266,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:264,9'
          Dst:             pr_trace_msg
    - functionName:    gidcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 229
      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:211,9'
          Dst:             pr_table_kget
        - Src:             'auth.c:214,7'
          Dst:             sstrncpy
        - Src:             'auth.c:218,9'
          Dst:             pr_gid2str
        - Src:             'auth.c:216,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:223,52'
          Dst:             pr_gid2str
        - Src:             'auth.c:224,16'
          Dst:             __errno_location
        - Src:             'auth.c:224,7'
          Dst:             strerror
        - Src:             'auth.c:222,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:227,3'
          Dst:             __errno_location
    - functionName:    gidcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 169
      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:162,15'
          Dst:             pr_table_alloc
        - Src:             'auth.c:164,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:164,12'
          Dst:             gid_keycmp_cb
        - Src:             'auth.c:166,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:166,12'
          Dst:             gid_hash_cb
    - functionName:    pr_auth_gid2name
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1340
      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:1295,5'
          Dst:             __errno_location
        - Src:             'auth.c:1299,3'
          Dst:             gidcache_create
        - Src:             'auth.c:1302,9'
          Dst:             gidcache_get
        - Src:             'auth.c:1308,9'
          Dst:             make_cmd
        - Src:             'auth.c:1309,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1314,5'
          Dst:             sstrncpy
        - Src:             'auth.c:1318,7'
          Dst:             gidcache_add
        - Src:             'auth.c:1325,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1331,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:1335,7'
          Dst:             gidcache_add
    - functionName:    gidcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 205
      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:172,3'
          Dst:             gidcache_create
        - Src:             'auth.c:177,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:178,13'
          Dst:             pr_table_kexists
        - Src:             'auth.c:186,19'
          Dst:             palloc
        - Src:             'auth.c:189,17'
          Dst:             strlen
        - Src:             'auth.c:192,11'
          Dst:             pstrndup
        - Src:             'auth.c:191,11'
          Dst:             pr_table_kadd
        - Src:             'auth.c:193,11'
          Dst:             __errno_location
        - Src:             'auth.c:196,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:196,43'
          Dst:             __errno_location
        - Src:             'auth.c:196,34'
          Dst:             strerror
        - Src:             'auth.c:194,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:201,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:199,9'
          Dst:             pr_trace_msg
    - functionName:    uidcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 157
      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:139,9'
          Dst:             pr_table_kget
        - Src:             'auth.c:142,7'
          Dst:             sstrncpy
        - Src:             'auth.c:146,9'
          Dst:             pr_uid2str
        - Src:             'auth.c:144,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:151,52'
          Dst:             pr_uid2str
        - Src:             'auth.c:152,16'
          Dst:             __errno_location
        - Src:             'auth.c:152,7'
          Dst:             strerror
        - Src:             'auth.c:150,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:155,3'
          Dst:             __errno_location
    - functionName:    uidcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 97
      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:90,15'
          Dst:             pr_table_alloc
        - Src:             'auth.c:92,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:92,12'
          Dst:             uid_keycmp_cb
        - Src:             'auth.c:94,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:94,12'
          Dst:             uid_hash_cb
    - functionName:    pr_auth_uid2name
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1230
      functionLinenumberEnd: 1284
      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:1239,5'
          Dst:             __errno_location
        - Src:             'auth.c:1243,3'
          Dst:             uidcache_create
        - Src:             'auth.c:1246,9'
          Dst:             uidcache_get
        - Src:             'auth.c:1252,9'
          Dst:             make_cmd
        - Src:             'auth.c:1253,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1258,5'
          Dst:             sstrncpy
        - Src:             'auth.c:1262,7'
          Dst:             uidcache_add
        - Src:             'auth.c:1269,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1275,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:1279,7'
          Dst:             uidcache_add
    - functionName:    uidcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 133
      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:100,3'
          Dst:             uidcache_create
        - Src:             'auth.c:105,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:106,13'
          Dst:             pr_table_kexists
        - Src:             'auth.c:114,19'
          Dst:             palloc
        - Src:             'auth.c:117,17'
          Dst:             strlen
        - Src:             'auth.c:120,11'
          Dst:             pstrndup
        - Src:             'auth.c:119,11'
          Dst:             pr_table_kadd
        - Src:             'auth.c:121,11'
          Dst:             __errno_location
        - Src:             'auth.c:124,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:124,43'
          Dst:             __errno_location
        - Src:             'auth.c:124,34'
          Dst:             strerror
        - Src:             'auth.c:122,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:129,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:127,9'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_requires_pass
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1228
      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:1208,5'
          Dst:             __errno_location
        - Src:             'auth.c:1212,9'
          Dst:             make_cmd
        - Src:             'auth.c:1213,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1223,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_check
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1199
      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:1105,5'
          Dst:             __errno_location
        - Src:             'auth.c:1109,26'
          Dst:             strlen
        - Src:             'auth.c:1111,5'
          Dst:             pr_log_auth
        - Src:             'auth.c:1114,5'
          Dst:             __errno_location
        - Src:             'auth.c:1118,9'
          Dst:             make_cmd
        - Src:             'auth.c:1129,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1131,11'
          Dst:             pr_module_get
        - Src:             'auth.c:1133,14'
          Dst:             dispatch_auth
        - Src:             'auth.c:1135,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1141,13'
          Dst:             destroy_pool
        - Src:             'auth.c:1147,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:1145,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1155,13'
          Dst:             destroy_pool
        - Src:             'auth.c:1161,29'
          Dst:             get_authcode_str
        - Src:             'auth.c:1159,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1174,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1178,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1184,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1189,55'
          Dst:             get_authcode_str
        - Src:             'auth.c:1188,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1194,5'
          Dst:             destroy_pool
    - functionName:    get_authcode_str
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 926
      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:861,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_auth_authorize
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1038
      functionLinenumberEnd: 1088
      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:1046,5'
          Dst:             __errno_location
        - Src:             'auth.c:1050,9'
          Dst:             make_cmd
        - Src:             'auth.c:1056,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1060,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1066,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1078,56'
          Dst:             get_authcode_str
        - Src:             'auth.c:1077,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1083,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_authenticate
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 1036
      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:938,5'
          Dst:             __errno_location
        - Src:             'auth.c:942,9'
          Dst:             make_cmd
        - Src:             'auth.c:953,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:955,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:958,11'
          Dst:             pr_module_get
        - Src:             'auth.c:960,14'
          Dst:             dispatch_auth
        - Src:             'auth.c:963,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:969,13'
          Dst:             destroy_pool
        - Src:             'auth.c:975,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:973,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:980,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:986,13'
          Dst:             destroy_pool
        - Src:             'auth.c:992,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:990,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1005,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1009,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1015,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1021,7'
          Dst:             get_authcode_str
        - Src:             'auth.c:1019,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1026,59'
          Dst:             get_authcode_str
        - Src:             'auth.c:1025,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1031,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_getgrgid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 856
      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:823,5'
          Dst:             __errno_location
        - Src:             'auth.c:827,9'
          Dst:             make_cmd
        - Src:             'auth.c:828,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:836,5'
          Dst:             destroy_pool
        - Src:             'auth.c:842,5'
          Dst:             __errno_location
        - Src:             'auth.c:848,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:849,5'
          Dst:             __errno_location
        - Src:             'auth.c:853,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getgrnam
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 815
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:774,5'
          Dst:             __errno_location
        - Src:             'auth.c:778,9'
          Dst:             make_cmd
        - Src:             'auth.c:779,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:787,5'
          Dst:             destroy_pool
        - Src:             'auth.c:793,5'
          Dst:             __errno_location
        - Src:             'auth.c:799,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:800,5'
          Dst:             __errno_location
        - Src:             'auth.c:805,5'
          Dst:             gidcache_add
        - Src:             'auth.c:809,5'
          Dst:             groupcache_add
        - Src:             'auth.c:813,5'
          Dst:             pr_gid2str
        - Src:             'auth.c:812,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getpwuid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 765
      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:726,5'
          Dst:             __errno_location
        - Src:             'auth.c:730,9'
          Dst:             make_cmd
        - Src:             'auth.c:731,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:739,5'
          Dst:             destroy_pool
        - Src:             'auth.c:745,5'
          Dst:             __errno_location
        - Src:             'auth.c:751,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:752,5'
          Dst:             __errno_location
        - Src:             'auth.c:757,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:758,5'
          Dst:             __errno_location
        - Src:             'auth.c:763,19'
          Dst:             pr_uid2str
        - Src:             'auth.c:762,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_get_home
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2319
      functionLinenumberEnd: 2377
      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:2325,5'
          Dst:             __errno_location
        - Src:             'auth.c:2331,7'
          Dst:             find_config
        - Src:             'auth.c:2352,10'
          Dst:             pr_table_remove
        - Src:             'auth.c:2354,7'
          Dst:             pstrdup
        - Src:             'auth.c:2353,7'
          Dst:             pr_table_add
        - Src:             'auth.c:2356,64'
          Dst:             __errno_location
        - Src:             'auth.c:2356,55'
          Dst:             strerror
        - Src:             'auth.c:2355,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2360,3'
          Dst:             pr_event_generate
        - Src:             'auth.c:2362,14'
          Dst:             pr_table_get
        - Src:             'auth.c:2365,65'
          Dst:             __errno_location
        - Src:             'auth.c:2365,56'
          Dst:             strerror
        - Src:             'auth.c:2364,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2369,10'
          Dst:             pr_table_remove
        - Src:             'auth.c:2371,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:2373,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_getpwnam
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 718
      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:625,5'
          Dst:             __errno_location
        - Src:             'auth.c:629,9'
          Dst:             make_cmd
        - Src:             'auth.c:630,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:638,5'
          Dst:             destroy_pool
        - Src:             'auth.c:644,5'
          Dst:             __errno_location
        - Src:             'auth.c:650,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:651,5'
          Dst:             __errno_location
        - Src:             'auth.c:656,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:657,5'
          Dst:             __errno_location
        - Src:             'auth.c:664,16'
          Dst:             pr_table_alloc
        - Src:             'auth.c:672,13'
          Dst:             palloc
        - Src:             'auth.c:675,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:677,34'
          Dst:             pstrdup
        - Src:             'auth.c:677,11'
          Dst:             pr_table_add
        - Src:             'auth.c:681,35'
          Dst:             __errno_location
        - Src:             'auth.c:681,26'
          Dst:             strerror
        - Src:             'auth.c:679,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:684,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:690,34'
          Dst:             pstrdup
        - Src:             'auth.c:690,11'
          Dst:             pr_table_set
        - Src:             'auth.c:694,35'
          Dst:             __errno_location
        - Src:             'auth.c:694,26'
          Dst:             strerror
        - Src:             'auth.c:692,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:697,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:705,5'
          Dst:             uidcache_add
        - Src:             'auth.c:709,5'
          Dst:             usercache_add
        - Src:             'auth.c:713,26'
          Dst:             pr_auth_get_home
        - Src:             'auth.c:716,5'
          Dst:             pr_uid2str
        - Src:             'auth.c:715,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 615
      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:585,5'
          Dst:             __errno_location
        - Src:             'auth.c:589,9'
          Dst:             make_cmd
        - Src:             'auth.c:590,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:598,5'
          Dst:             destroy_pool
        - Src:             'auth.c:609,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:610,5'
          Dst:             __errno_location
    - functionName:    pr_auth_getpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 577
      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:541,5'
          Dst:             __errno_location
        - Src:             'auth.c:545,9'
          Dst:             make_cmd
        - Src:             'auth.c:546,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:554,5'
          Dst:             destroy_pool
        - Src:             'auth.c:565,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:566,5'
          Dst:             __errno_location
        - Src:             'auth.c:571,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:572,5'
          Dst:             __errno_location
    - functionName:    pr_auth_endgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 533
      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:526,9'
          Dst:             make_cmd
        - Src:             'auth.c:527,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:530,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_setgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 521
      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:514,9'
          Dst:             make_cmd
        - Src:             'auth.c:515,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:518,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_endpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 509
      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:490,9'
          Dst:             make_cmd
        - Src:             'auth.c:491,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:494,5'
          Dst:             destroy_pool
        - Src:             'auth.c:501,18'
          Dst:             pr_table_count
        - Src:             'auth.c:502,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:505,12'
          Dst:             pr_table_empty
        - Src:             'auth.c:506,12'
          Dst:             pr_table_free
    - functionName:    pr_auth_setpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 485
      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:478,9'
          Dst:             make_cmd
        - Src:             'auth.c:479,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:482,5'
          Dst:             destroy_pool
    - functionName:    peek_is_aborting_cmd
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          182
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - recv
        - select
        - strerror
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:968,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:973,9'
          Dst:             select
        - Src:             'data.c:975,18'
          Dst:             __errno_location
        - Src:             'data.c:978,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:979,13'
          Dst:             select
        - Src:             'data.c:984,55'
          Dst:             strerror
        - Src:             'data.c:983,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:990,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1002,9'
          Dst:             recv
        - Src:             'data.c:1004,18'
          Dst:             __errno_location
        - Src:             'data.c:1007,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1008,13'
          Dst:             recv
        - Src:             'data.c:1013,41'
          Dst:             strerror
        - Src:             'data.c:1012,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1017,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:1019,7'
          Dst:             strncasecmp
        - Src:             'data.c:1020,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1024,7'
          Dst:             strncasecmp
        - Src:             'data.c:1025,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1031,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: 65
      functionLinenumberEnd: 73
      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:66,3'
          Dst:             pr_event_generate
        - Src:             'data.c:67,3'
          Dst:             pr_log_pri
        - Src:             'data.c:69,3'
          Dst:             pr_session_disconnect
    - functionName:    pr_data_sendfile
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1473
      functionLinenumberEnd: 1755
      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:1483,5'
          Dst:             __errno_location
        - Src:             'data.c:1488,5'
          Dst:             __errno_location
        - Src:             'data.c:1493,5'
          Dst:             __errno_location
        - Src:             'data.c:1497,11'
          Dst:             fcntl
        - Src:             'data.c:1504,9'
          Dst:             fcntl
        - Src:             'data.c:1548,5'
          Dst:             __errno_location
        - Src:             'data.c:1549,11'
          Dst:             sendfile
        - Src:             'data.c:1555,11'
          Dst:             __errno_location
        - Src:             'data.c:1556,11'
          Dst:             __errno_location
        - Src:             'data.c:1561,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1570,9'
          Dst:             __errno_location
        - Src:             'data.c:1585,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1589,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1599,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1689,11'
          Dst:             __errno_location
        - Src:             'data.c:1699,9'
          Dst:             pr_signals_handle
        - Src:             'data.c:1710,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1714,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1726,15'
          Dst:             __errno_location
        - Src:             'data.c:1727,14'
          Dst:             fcntl
        - Src:             'data.c:1728,7'
          Dst:             __errno_location
        - Src:             'data.c:1737,12'
          Dst:             fcntl
        - Src:             'data.c:1741,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:1745,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: 1036
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - peek_is_aborting_cmd
        - pr_netio_abort
        - pr_netio_poll
        - pr_netio_reset_poll_interval
        - pr_netio_set_poll_interval
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:1043,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:1044,3'
          Dst:             pr_netio_set_poll_interval
        - Src:             'data.c:1045,9'
          Dst:             pr_netio_poll
        - Src:             'data.c:1046,3'
          Dst:             pr_netio_reset_poll_interval
        - Src:             'data.c:1072,9'
          Dst:             peek_is_aborting_cmd
        - Src:             'data.c:1073,7'
          Dst:             pr_trace_msg
        - Src:             'data.c:1080,9'
          Dst:             pr_netio_abort
        - Src:             'data.c:1081,9'
          Dst:             __errno_location
    - functionName:    pr_data_xfer
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1094
      functionLinenumberEnd: 1466
      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:1102,5'
          Dst:             __errno_location
        - Src:             'data.c:1109,3'
          Dst:             poll_ctrl
        - Src:             'data.c:1127,50'
          Dst:             strerror
        - Src:             'data.c:1125,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1130,51'
          Dst:             strerror
        - Src:             'data.c:1128,5'
          Dst:             pr_log_debug
        - Src:             'data.c:1132,5'
          Dst:             __errno_location
        - Src:             'data.c:1153,9'
          Dst:             pr_signals_handle
        - Src:             'data.c:1155,15'
          Dst:             pr_netio_read
        - Src:             'data.c:1158,24'
          Dst:             __errno_location
        - Src:             'data.c:1165,13'
          Dst:             __errno_location
        - Src:             'data.c:1166,13'
          Dst:             pr_signals_handle
        - Src:             'data.c:1168,19'
          Dst:             pr_netio_read
        - Src:             'data.c:1173,11'
          Dst:             destroy_pool
        - Src:             'data.c:1174,11'
          Dst:             __errno_location
        - Src:             'data.c:1180,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1184,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1187,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1195,11'
          Dst:             pr_trace_msg
        - Src:             'data.c:1201,13'
          Dst:             pr_timer_reset
        - Src:             'data.c:1226,26'
          Dst:             make_sub_pool
        - Src:             'data.c:1227,15'
          Dst:             pr_pool_tag
        - Src:             'data.c:1230,19'
          Dst:             pr_ascii_ftp_from_crlf
        - Src:             'data.c:1233,26'
          Dst:             __errno_location
        - Src:             'data.c:1233,17'
          Dst:             strerror
        - Src:             'data.c:1232,15'
          Dst:             pr_trace_msg
        - Src:             'data.c:1279,13'
          Dst:             pr_netio_read
        - Src:             'data.c:1281,22'
          Dst:             __errno_location
        - Src:             'data.c:1288,11'
          Dst:             __errno_location
        - Src:             'data.c:1289,11'
          Dst:             pr_signals_handle
        - Src:             'data.c:1291,17'
          Dst:             pr_netio_read
        - Src:             'data.c:1299,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1303,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1307,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1310,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1319,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1334,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1336,20'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:1337,18'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:1355,22'
          Dst:             make_sub_pool
        - Src:             'data.c:1356,11'
          Dst:             pr_pool_tag
        - Src:             'data.c:1367,15'
          Dst:             pr_ascii_ftp_to_crlf
        - Src:             'data.c:1371,22'
          Dst:             __errno_location
        - Src:             'data.c:1371,13'
          Dst:             strerror
        - Src:             'data.c:1370,11'
          Dst:             pr_trace_msg
        - Src:             'data.c:1382,16'
          Dst:             pr_netio_write
        - Src:             'data.c:1384,22'
          Dst:             __errno_location
        - Src:             'data.c:1392,11'
          Dst:             __errno_location
        - Src:             'data.c:1393,11'
          Dst:             pr_signals_handle
        - Src:             'data.c:1395,20'
          Dst:             pr_netio_write
        - Src:             'data.c:1399,9'
          Dst:             destroy_pool
        - Src:             'data.c:1406,9'
          Dst:             __errno_location
        - Src:             'data.c:1411,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1415,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1419,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1422,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1430,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1452,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:1464,3'
          Dst:             destroy_pool
    - functionName:    pr_data_abort
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 952
      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:785,5'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:751,5'
          Dst:             strerror
        - Src:             'data.c:749,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:759,7'
          Dst:             pr_inet_lingering_abort
        - Src:             'data.c:762,7'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:769,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:773,5'
          Dst:             pr_timer_remove
        - Src:             'data.c:778,3'
          Dst:             pr_session_set_idle
        - Src:             'data.c:924,16'
          Dst:             strerror
        - Src:             'data.c:926,11'
          Dst:             pr_snprintf
        - Src:             'data.c:932,5'
          Dst:             pr_log_pri
        - Src:             'data.c:940,7'
          Dst:             pr_response_add_err
        - Src:             'data.c:946,5'
          Dst:             pr_response_set_pool
    - functionName:    pr_data_cleanup
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 739
      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:728,5'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:732,3'
          Dst:             pr_data_clear_xfer_pool
    - functionName:    pr_data_clear_xfer_pool
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 475
      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:464,5'
          Dst:             destroy_pool
    - functionName:    pr_data_close
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 714
      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:709,3'
          Dst:             pr_data_close2
        - Src:             'data.c:712,5'
          Dst:             pr_response_add
    - functionName:    pr_data_close2
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 705
      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:687,5'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:692,3'
          Dst:             signal
        - Src:             'data.c:695,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:699,5'
          Dst:             pr_timer_remove
        - Src:             'data.c:704,3'
          Dst:             pr_session_set_idle
    - functionName:    data_urgent
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 91
      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:81,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:86,7'
          Dst:             pr_netio_abort
        - Src:             'data.c:90,3'
          Dst:             signal
        - Src:             'data.c:90,3'
          Dst:             data_urgent
    - functionName:    data_active_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 416
      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:258,5'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:220,5'
          Dst:             __errno_location
        - Src:             'data.c:229,7'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:229,55'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:236,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'data.c:244,17'
          Dst:             get_param_ptr
        - Src:             'data.c:261,11'
          Dst:             pr_log_debug
        - Src:             'data.c:263,11'
          Dst:             __errno_location
        - Src:             'data.c:277,15'
          Dst:             pr_inet_create_conn2
        - Src:             'data.c:280,14'
          Dst:             __errno_location
        - Src:             'data.c:283,7'
          Dst:             strerror
        - Src:             'data.c:282,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:285,5'
          Dst:             __errno_location
        - Src:             'data.c:293,7'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:296,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:294,5'
          Dst:             pr_log_debug
        - Src:             'data.c:298,47'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:298,5'
          Dst:             pr_netaddr_set_family
        - Src:             'data.c:299,49'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'data.c:299,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'data.c:306,5'
          Dst:             pr_timer_add
        - Src:             'data.c:306,5'
          Dst:             stalled_timeout_cb
        - Src:             'data.c:310,9'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:315,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:320,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:325,7'
          Dst:             find_config
        - Src:             'data.c:336,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'data.c:338,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'data.c:341,7'
          Dst:             pr_inet_connect
        - Src:             'data.c:347,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:348,7'
          Dst:             strerror
        - Src:             'data.c:345,5'
          Dst:             pr_log_debug
        - Src:             'data.c:350,7'
          Dst:             strerror
        - Src:             'data.c:349,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:351,5'
          Dst:             pr_data_close2
        - Src:             'data.c:353,5'
          Dst:             __errno_location
        - Src:             'data.c:357,10'
          Dst:             pr_inet_openrw
        - Src:             'data.c:360,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:364,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:363,5'
          Dst:             pr_log_debug
        - Src:             'data.c:366,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:365,5'
          Dst:             pr_log_debug
        - Src:             'data.c:370,9'
          Dst:             pr_response_send
        - Src:             'data.c:375,9'
          Dst:             pr_response_send
        - Src:             'data.c:400,7'
          Dst:             pr_response_send
        - Src:             'data.c:403,12'
          Dst:             pr_inet_set_nonblock
        - Src:             'data.c:404,5'
          Dst:             pr_inet_close
        - Src:             'data.c:410,5'
          Dst:             strerror
        - Src:             'data.c:409,3'
          Dst:             pr_response_add_err
        - Src:             'data.c:412,3'
          Dst:             pr_data_close2
        - Src:             'data.c:414,3'
          Dst:             __errno_location
    - functionName:    data_passive_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 210
      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:122,5'
          Dst:             pr_timer_add
        - Src:             'data.c:122,5'
          Dst:             stalled_timeout_cb
        - Src:             'data.c:130,9'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:135,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:140,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:145,7'
          Dst:             pr_inet_accept
        - Src:             'data.c:146,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:149,5'
          Dst:             pr_inet_close
        - Src:             'data.c:150,12'
          Dst:             pr_inet_set_nonblock
        - Src:             'data.c:154,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:153,5'
          Dst:             pr_log_debug
        - Src:             'data.c:156,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:155,5'
          Dst:             pr_log_debug
        - Src:             'data.c:160,9'
          Dst:             pr_response_send
        - Src:             'data.c:165,9'
          Dst:             pr_response_send
        - Src:             'data.c:190,7'
          Dst:             pr_response_send
        - Src:             'data.c:200,25'
          Dst:             strerror
        - Src:             'data.c:199,5'
          Dst:             pr_log_pri
        - Src:             'data.c:205,5'
          Dst:             strerror
        - Src:             'data.c:204,3'
          Dst:             pr_response_add_err
        - Src:             'data.c:206,3'
          Dst:             pr_data_close2
        - Src:             'data.c:208,3'
          Dst:             __errno_location
    - functionName:    pr_data_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 681
      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:546,5'
          Dst:             __errno_location
        - Src:             'data.c:556,7'
          Dst:             __errno_location
        - Src:             'data.c:565,7'
          Dst:             __errno_location
        - Src:             'data.c:574,5'
          Dst:             data_new_xfer
        - Src:             'data.c:587,11'
          Dst:             data_passive_open
        - Src:             'data.c:591,11'
          Dst:             data_active_open
        - Src:             'data.c:598,7'
          Dst:             pr_netio_postopen
        - Src:             'data.c:602,7'
          Dst:             strerror
        - Src:             'data.c:601,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:604,5'
          Dst:             pr_data_close2
        - Src:             'data.c:606,5'
          Dst:             __errno_location
        - Src:             'data.c:610,7'
          Dst:             pr_netio_postopen
        - Src:             'data.c:614,7'
          Dst:             strerror
        - Src:             'data.c:613,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:616,5'
          Dst:             pr_data_close2
        - Src:             'data.c:618,5'
          Dst:             __errno_location
        - Src:             'data.c:623,3'
          Dst:             gettimeofday
        - Src:             'data.c:635,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:641,3'
          Dst:             pr_netio_set_poll_interval
        - Src:             'data.c:652,3'
          Dst:             sigemptyset
        - Src:             'data.c:662,7'
          Dst:             sigaction
        - Src:             'data.c:664,68'
          Dst:             __errno_location
        - Src:             'data.c:664,59'
          Dst:             strerror
        - Src:             'data.c:663,5'
          Dst:             pr_log_pri
        - Src:             'data.c:676,3'
          Dst:             pr_gettimeofday_millis
    - functionName:    data_new_xfer
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 107
      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:94,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'data.c:96,20'
          Dst:             make_sub_pool
        - Src:             'data.c:97,3'
          Dst:             pr_pool_tag
        - Src:             'data.c:99,27'
          Dst:             pstrdup
        - Src:             'data.c:101,26'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:102,22'
          Dst:             pcalloc
        - Src:             'data.c:103,3'
          Dst:             pr_trace_msg
    - functionName:    pr_data_init
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 537
      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:524,5'
          Dst:             data_new_xfer
        - Src:             'data.c:528,7'
          Dst:             pr_log_debug
        - Src:             'data.c:536,3'
          Dst:             pr_ascii_ftp_reset
    - functionName:    pr_data_ignore_ascii
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 520
      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:500,5'
          Dst:             __errno_location
    - functionName:    pr_data_reset
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 493
      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:479,3'
          Dst:             pr_ascii_ftp_reset
        - Src:             'data.c:483,5'
          Dst:             destroy_pool
    - functionName:    pr_data_set_timeout
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 458
      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:442,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_data_get_timeout
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 439
      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:423,3'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:437,3'
          Dst:             __errno_location
    - functionName:    pr_data_set_linger
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 420
      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: 385
      functionLinenumberEnd: 417
      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:398,5'
          Dst:             pr_signals_handle
    - functionName:    pr_event_generate
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 383
      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:330,7'
          Dst:             strcmp
        - Src:             'event.c:337,9'
          Dst:             strncmp
        - Src:             'event.c:342,9'
          Dst:             pr_trace_msg
        - Src:             'event.c:359,13'
          Dst:             pr_trace_msg
        - Src:             'event.c:364,13'
          Dst:             pr_trace_msg
    - functionName:    pr_event_listening
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 313
      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:284,5'
          Dst:             __errno_location
        - Src:             'event.c:296,9'
          Dst:             strncmp
    - functionName:    pr_event_unregister
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 277
      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:213,3'
          Dst:             pr_trace_msg
        - Src:             'event.c:224,5'
          Dst:             pr_signals_handle
        - Src:             'event.c:227,9'
          Dst:             strncmp
        - Src:             'event.c:272,5'
          Dst:             __errno_location
    - functionName:    event_cleanup_cb
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 82
      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: 85
      functionLinenumberEnd: 202
      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:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:94,5'
          Dst:             __errno_location
        - Src:             'event.c:99,18'
          Dst:             make_sub_pool
        - Src:             'event.c:100,5'
          Dst:             pr_pool_tag
        - Src:             'event.c:102,5'
          Dst:             register_cleanup2
        - Src:             'event.c:102,5'
          Dst:             event_cleanup_cb
        - Src:             'event.c:105,3'
          Dst:             pr_trace_msg
        - Src:             'event.c:109,9'
          Dst:             pcalloc
        - Src:             'event.c:117,9'
          Dst:             strcmp
        - Src:             'event.c:130,9'
          Dst:             strncmp
        - Src:             'event.c:144,11'
          Dst:             pr_signals_handle
        - Src:             'event.c:148,13'
          Dst:             __errno_location
        - Src:             'event.c:184,14'
          Dst:             pr_pool_create_sz
        - Src:             'event.c:185,3'
          Dst:             pr_pool_tag
        - Src:             'event.c:187,9'
          Dst:             pcalloc
        - Src:             'event.c:189,16'
          Dst:             pstrdup
        - Src:             'event.c:190,20'
          Dst:             strlen
    - functionName:    xaset_copy
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 239
      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:196,5'
          Dst:             __errno_location
        - Src:             'sets.c:202,5'
          Dst:             __errno_location
        - Src:             'sets.c:208,13'
          Dst:             xaset_create
        - Src:             'sets.c:218,52'
          Dst:             palloc
    - functionName:    xaset_create
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 55
      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:39,5'
          Dst:             __errno_location
        - Src:             'sets.c:45,13'
          Dst:             palloc
    - functionName:    xaset_remove
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 184
      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:155,5'
          Dst:             __errno_location
        - Src:             'sets.c:167,5'
          Dst:             __errno_location
    - functionName:    xaset_insert_sort
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 144
      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:115,5'
          Dst:             __errno_location
    - functionName:    xaset_insert_end
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 101
      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:85,5'
          Dst:             __errno_location
    - functionName:    xaset_insert
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 76
      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:64,5'
          Dst:             __errno_location
    - functionName:    pr_pidfile_remove
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      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:86,10'
          Dst:             unlink
    - functionName:    pr_pidfile_write
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 83
      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:55,3'
          Dst:             pr_privs_root
        - Src:             'pidfile.c:56,8'
          Dst:             open
        - Src:             'pidfile.c:57,12'
          Dst:             __errno_location
        - Src:             'pidfile.c:58,3'
          Dst:             pr_privs_relinquish
        - Src:             'pidfile.c:61,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:66,3'
          Dst:             pr_privs_root
        - Src:             'pidfile.c:67,9'
          Dst:             fchmod
        - Src:             'pidfile.c:68,12'
          Dst:             __errno_location
        - Src:             'pidfile.c:69,3'
          Dst:             pr_privs_relinquish
        - Src:             'pidfile.c:73,21'
          Dst:             strerror
        - Src:             'pidfile.c:72,5'
          Dst:             fprintf
        - Src:             'pidfile.c:76,40'
          Dst:             getpid
        - Src:             'pidfile.c:76,3'
          Dst:             dprintf
        - Src:             'pidfile.c:77,7'
          Dst:             close
        - Src:             'pidfile.c:79,16'
          Dst:             __errno_location
        - Src:             'pidfile.c:79,7'
          Dst:             strerror
        - Src:             'pidfile.c:78,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: 35
      functionLinenumberEnd: 49
      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:37,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:43,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:47,18'
          Dst:             pstrdup
    - functionName:    pr_pidfile_get
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      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: 597
      functionLinenumberEnd: 674
      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:606,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:602,5'
          Dst:             __errno_location
        - Src:             'netacl.c:608,13'
          Dst:             pstrcat
        - Src:             'netacl.c:610,15'
          Dst:             pstrcat
        - Src:             'netacl.c:615,13'
          Dst:             pstrcat
        - Src:             'netacl.c:617,15'
          Dst:             pstrcat
        - Src:             'netacl.c:622,13'
          Dst:             pstrcat
        - Src:             'netacl.c:628,9'
          Dst:             pr_snprintf
        - Src:             'netacl.c:629,15'
          Dst:             pstrcat
        - Src:             'netacl.c:636,13'
          Dst:             pstrcat
        - Src:             'netacl.c:638,15'
          Dst:             pstrcat
        - Src:             'netacl.c:643,13'
          Dst:             pstrcat
        - Src:             'netacl.c:645,15'
          Dst:             pstrcat
        - Src:             'netacl.c:650,13'
          Dst:             pstrcat
        - Src:             'netacl.c:652,15'
          Dst:             pstrcat
        - Src:             'netacl.c:657,13'
          Dst:             pstrcat
        - Src:             'netacl.c:659,15'
          Dst:             pstrcat
        - Src:             'netacl.c:666,13'
          Dst:             pstrcat
        - Src:             'netacl.c:669,13'
          Dst:             pstrcat
    - functionName:    pr_netacl_get_negated
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 595
      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:590,5'
          Dst:             __errno_location
    - functionName:    pr_netacl_dup
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 586
      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:554,5'
          Dst:             __errno_location
        - Src:             'netacl.c:558,10'
          Dst:             pcalloc
        - Src:             'netacl.c:564,21'
          Dst:             pstrdup
        - Src:             'netacl.c:572,12'
          Dst:             pr_netaddr_alloc
        - Src:             'netacl.c:573,33'
          Dst:             pr_netaddr_get_family
        - Src:             'netacl.c:573,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netacl.c:574,35'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netacl.c:574,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netacl.c:582,20'
          Dst:             pstrdup
    - functionName:    pr_netacl_create
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 547
      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:298,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:238,5'
          Dst:             __errno_location
        - Src:             'netacl.c:242,7'
          Dst:             strlen
        - Src:             'netacl.c:243,5'
          Dst:             __errno_location
        - Src:             'netacl.c:248,9'
          Dst:             pcalloc
        - Src:             'netacl.c:250,16'
          Dst:             pstrdup
        - Src:             'netacl.c:252,7'
          Dst:             strncasecmp
        - Src:             'netacl.c:253,18'
          Dst:             pstrdup
        - Src:             'netacl.c:256,14'
          Dst:             strncasecmp
        - Src:             'netacl.c:257,18'
          Dst:             pstrdup
        - Src:             'netacl.c:260,20'
          Dst:             strchr
        - Src:             'netacl.c:276,9'
          Dst:             strspn
        - Src:             'netacl.c:276,55'
          Dst:             strlen
        - Src:             'netacl.c:277,7'
          Dst:             __errno_location
        - Src:             'netacl.c:281,17'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:287,20'
          Dst:             strtol
        - Src:             'netacl.c:291,7'
          Dst:             __errno_location
        - Src:             'netacl.c:298,13'
          Dst:             pr_netaddr_get_family
        - Src:             'netacl.c:304,11'
          Dst:             __errno_location
        - Src:             'netacl.c:313,13'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:315,13'
          Dst:             __errno_location
        - Src:             'netacl.c:319,15'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netacl.c:325,13'
          Dst:             pr_log_pri
        - Src:             'netacl.c:326,13'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:339,14'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:340,14'
          Dst:             strspn
        - Src:             'netacl.c:340,61'
          Dst:             strlen
        - Src:             'netacl.c:354,9'
          Dst:             strpbrk
        - Src:             'netacl.c:356,27'
          Dst:             strlen
        - Src:             'netacl.c:364,13'
          Dst:             __ctype_b_loc
        - Src:             'netacl.c:366,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:390,22'
          Dst:             pstrdup
        - Src:             'netacl.c:394,22'
          Dst:             pstrcat
        - Src:             'netacl.c:398,22'
          Dst:             pstrdup
        - Src:             'netacl.c:401,14'
          Dst:             strchr
        - Src:             'netacl.c:415,9'
          Dst:             strpbrk
        - Src:             'netacl.c:422,9'
          Dst:             strchr
        - Src:             'netacl.c:427,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:428,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:431,9'
          Dst:             pr_log_pri
        - Src:             'netacl.c:446,22'
          Dst:             pstrdup
        - Src:             'netacl.c:450,19'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:452,22'
          Dst:             __errno_location
        - Src:             'netacl.c:455,11'
          Dst:             strerror
        - Src:             'netacl.c:454,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:457,9'
          Dst:             __errno_location
        - Src:             'netacl.c:461,22'
          Dst:             pstrdup
        - Src:             'netacl.c:474,16'
          Dst:             strlen
        - Src:             'netacl.c:476,22'
          Dst:             pstrcat
        - Src:             'netacl.c:492,19'
          Dst:             strpbrk
        - Src:             'netacl.c:494,20'
          Dst:             strlen
        - Src:             'netacl.c:496,13'
          Dst:             __ctype_b_loc
        - Src:             'netacl.c:498,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:523,21'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:531,26'
          Dst:             pstrdup
        - Src:             'netacl.c:535,26'
          Dst:             pstrcat
        - Src:             'netacl.c:539,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: 676
      functionLinenumberEnd: 677
      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:677,10'
          Dst:             pr_netacl_get_str2
    - functionName:    pr_netacl_match
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 230
      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:61,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:55,5'
          Dst:             __errno_location
        - Src:             'netacl.c:59,14'
          Dst:             make_sub_pool
        - Src:             'netacl.c:64,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:64,37'
          Dst:             pr_netacl_get_str
        - Src:             'netacl.c:63,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:70,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:69,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:77,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:75,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:79,11'
          Dst:             pr_netaddr_ncmp
        - Src:             'netacl.c:81,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:80,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:93,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:91,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:104,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:102,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:106,11'
          Dst:             pr_netaddr_cmp
        - Src:             'netacl.c:109,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:107,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:121,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:119,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:132,9'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:130,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:134,18'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:134,11'
          Dst:             strcmp
        - Src:             'netacl.c:137,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:137,39'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:135,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:150,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:150,39'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:148,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:162,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:160,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:164,11'
          Dst:             pr_netaddr_fnmatch
        - Src:             'netacl.c:168,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:166,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:180,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:178,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:192,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:190,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:194,13'
          Dst:             pr_netaddr_fnmatch
        - Src:             'netacl.c:198,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:198,41'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:196,11'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:211,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:211,41'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:209,11'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:222,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:223,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:220,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:228,3'
          Dst:             destroy_pool
    - functionName:    pr_netacl_get_type
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      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: 268
      functionLinenumberEnd: 280
      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:271,7'
          Dst:             pr_table_empty
        - Src:             'var.c:272,7'
          Dst:             pr_table_free
        - Src:             'var.c:275,5'
          Dst:             destroy_pool
    - functionName:    var_init
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 265
      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:257,16'
          Dst:             make_sub_pool
        - Src:             'var.c:258,5'
          Dst:             pr_pool_tag
        - Src:             'var.c:262,15'
          Dst:             pr_table_alloc
    - functionName:    pr_var_set
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 252
      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:216,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var.c:152,5'
          Dst:             __errno_location
        - Src:             'var.c:159,5'
          Dst:             __errno_location
        - Src:             'var.c:164,13'
          Dst:             strlen
        - Src:             'var.c:166,5'
          Dst:             __errno_location
        - Src:             'var.c:173,5'
          Dst:             __errno_location
        - Src:             'var.c:180,5'
          Dst:             __errno_location
        - Src:             'var.c:189,5'
          Dst:             __errno_location
        - Src:             'var.c:194,7'
          Dst:             strncmp
        - Src:             'var.c:196,5'
          Dst:             __errno_location
        - Src:             'var.c:206,10'
          Dst:             pr_var_delete
        - Src:             'var.c:218,11'
          Dst:             pcalloc
        - Src:             'var.c:221,36'
          Dst:             pstrdup
        - Src:             'var.c:225,18'
          Dst:             pstrdup
        - Src:             'var.c:226,21'
          Dst:             strlen
        - Src:             'var.c:230,11'
          Dst:             pcalloc
        - Src:             'var.c:233,36'
          Dst:             pstrdup
        - Src:             'var.c:247,7'
          Dst:             __errno_location
        - Src:             'var.c:251,10'
          Dst:             pr_table_add
    - functionName:    pr_var_delete
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 58
      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:48,5'
          Dst:             __errno_location
        - Src:             'var.c:53,5'
          Dst:             __errno_location
        - Src:             'var.c:57,10'
          Dst:             pr_table_remove
    - functionName:    pr_var_rewind
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 144
      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:142,5'
          Dst:             pr_table_rewind
    - functionName:    pr_var_next
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 138
      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:122,5'
          Dst:             __errno_location
        - Src:             'var.c:126,10'
          Dst:             pr_table_next
        - Src:             'var.c:131,7'
          Dst:             pr_table_get
    - functionName:    pr_var_get
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 115
      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:98,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var.c:78,5'
          Dst:             __errno_location
        - Src:             'var.c:83,5'
          Dst:             __errno_location
        - Src:             'var.c:87,7'
          Dst:             pr_table_get
        - Src:             'var.c:89,18'
          Dst:             __errno_location
        - Src:             'var.c:92,7'
          Dst:             strerror
        - Src:             'var.c:91,5'
          Dst:             pr_trace_msg
        - Src:             'var.c:94,5'
          Dst:             __errno_location
        - Src:             'var.c:100,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:104,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:109,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:113,3'
          Dst:             __errno_location
    - functionName:    pr_var_exists
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 72
      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:62,5'
          Dst:             __errno_location
        - Src:             'var.c:67,5'
          Dst:             __errno_location
        - Src:             'var.c:71,10'
          Dst:             pr_table_exists
    - functionName:    pr_cmd_is_ssh2
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 537
      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:513,5'
          Dst:             __errno_location
        - Src:             'cmd.c:519,5'
          Dst:             __errno_location
        - Src:             'cmd.c:524,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:531,7'
          Dst:             strncmp
        - Src:             'cmd.c:532,7'
          Dst:             strncmp
    - functionName:    pr_cmd_get_id
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          160
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - strcasecmp
        - strlen
        - toupper
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:398,5'
          Dst:             __errno_location
        - Src:             'cmd.c:402,17'
          Dst:             strlen
        - Src:             'cmd.c:411,5'
          Dst:             __errno_location
        - Src:             'cmd.c:416,7'
          Dst:             __ctype_b_loc
        - Src:             'cmd.c:417,20'
          Dst:             toupper
        - Src:             'cmd.c:429,9'
          Dst:             strcasecmp
        - Src:             'cmd.c:434,3'
          Dst:             __errno_location
    - functionName:    pr_cmd_is_smtp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 507
      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:487,5'
          Dst:             __errno_location
        - Src:             'cmd.c:493,5'
          Dst:             __errno_location
        - Src:             'cmd.c:498,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:505,17'
          Dst:             strlen
        - Src:             'cmd.c:506,10'
          Dst:             is_known_cmd
    - functionName:    is_known_cmd
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 452
      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:445,11'
          Dst:             strncmp
    - functionName:    pr_cmd_is_http
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 480
      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:460,5'
          Dst:             __errno_location
        - Src:             'cmd.c:466,5'
          Dst:             __errno_location
        - Src:             'cmd.c:471,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:478,17'
          Dst:             strlen
        - Src:             'cmd.c:479,10'
          Dst:             is_known_cmd
    - functionName:    pr_cmd_get_displayable_str
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 390
      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:341,5'
          Dst:             __errno_location
        - Src:             'cmd.c:345,9'
          Dst:             pr_table_get
        - Src:             'cmd.c:348,18'
          Dst:             strlen
        - Src:             'cmd.c:361,7'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:362,7'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:370,27'
          Dst:             pr_fs_decode_path
        - Src:             'cmd.c:370,11'
          Dst:             pstrcat
        - Src:             'cmd.c:373,34'
          Dst:             pr_fs_decode_path
        - Src:             'cmd.c:373,13'
          Dst:             pstrcat
        - Src:             'cmd.c:377,32'
          Dst:             pstrdup
        - Src:             'cmd.c:378,7'
          Dst:             pstrdup
        - Src:             'cmd.c:377,7'
          Dst:             pr_table_add
        - Src:             'cmd.c:379,9'
          Dst:             __errno_location
        - Src:             'cmd.c:381,70'
          Dst:             __errno_location
        - Src:             'cmd.c:381,61'
          Dst:             strerror
        - Src:             'cmd.c:380,7'
          Dst:             pr_trace_msg
        - Src:             'cmd.c:386,16'
          Dst:             strlen
    - functionName:    pr_cmd_cmp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 243
      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:    125
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:219,5'
          Dst:             __errno_location
        - Src:             'cmd.c:230,19'
          Dst:             pr_cmd_get_id
    - functionName:    pr_cmd_strcmp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 332
      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:302,5'
          Dst:             __errno_location
        - Src:             'cmd.c:313,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:319,14'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:321,11'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:326,12'
          Dst:             strncasecmp
        - Src:             'cmd.c:330,17'
          Dst:             strlen
        - Src:             'cmd.c:331,10'
          Dst:             strncmp
    - functionName:    pr_cmd_set_name
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 294
      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:286,5'
          Dst:             __errno_location
        - Src:             'cmd.c:291,17'
          Dst:             pr_cmd_get_id
    - functionName:    pr_cmd_get_errno
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 262
      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:250,5'
          Dst:             __errno_location
        - Src:             'cmd.c:254,16'
          Dst:             pr_table_get
        - Src:             'cmd.c:256,5'
          Dst:             __errno_location
    - functionName:    pr_cmd_set_errno
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 281
      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:    252
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:269,5'
          Dst:             __errno_location
        - Src:             'cmd.c:273,16'
          Dst:             pr_table_get
        - Src:             'cmd.c:275,5'
          Dst:             __errno_location
    - functionName:    pr_cmd_clear_cache
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 214
      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:202,5'
          Dst:             __errno_location
        - Src:             'cmd.c:210,10'
          Dst:             pr_table_remove
        - Src:             'cmd.c:211,10'
          Dst:             pr_cmd_set_errno
    - functionName:    pr_cmd_alloc
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 198
      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:156,5'
          Dst:             __errno_location
        - Src:             'cmd.c:160,13'
          Dst:             make_sub_pool
        - Src:             'cmd.c:161,3'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:163,9'
          Dst:             pcalloc
        - Src:             'cmd.c:168,19'
          Dst:             make_sub_pool
        - Src:             'cmd.c:169,3'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:174,17'
          Dst:             pcalloc
        - Src:             'cmd.c:184,5'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:190,16'
          Dst:             pr_table_nalloc
        - Src:             'cmd.c:193,12'
          Dst:             palloc
        - Src:             'cmd.c:195,10'
          Dst:             pr_table_add
    - functionName:    pr_env_unset
      functionSourceFile: '/src/proftpd/src/env.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 121
      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:100,5'
          Dst:             __errno_location
        - Src:             'env.c:108,9'
          Dst:             pr_env_get
        - Src:             'env.c:110,5'
          Dst:             pr_signals_handle
        - Src:             'env.c:112,5'
          Dst:             unsetenv
        - Src:             'env.c:113,11'
          Dst:             pr_env_get
    - functionName:    pr_env_get
      functionSourceFile: '/src/proftpd/src/env.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 41
      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:31,5'
          Dst:             __errno_location
        - Src:             'env.c:36,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: 43
      functionLinenumberEnd: 91
      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:55,5'
          Dst:             __errno_location
        - Src:             'env.c:59,14'
          Dst:             strlen
        - Src:             'env.c:61,5'
          Dst:             __errno_location
        - Src:             'env.c:73,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: 41
      functionLinenumberEnd: 51
      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:45,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: 29
      functionLinenumberEnd: 38
      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:33,3'
          Dst:             gettimeofday
        - Src:             'random.c:34,11'
          Dst:             getpid
        - Src:             'random.c:34,3'
          Dst:             srandom
        - Src:             'random.c:37,25'
          Dst:             getpid
        - Src:             'random.c:37,36'
          Dst:             time
        - Src:             'random.c:37,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: 32
      functionLinenumberEnd: 214
      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:137,13'
          Dst:             open
        - Src:             'wtmp.c:138,18'
          Dst:             __errno_location
        - Src:             'wtmp.c:141,7'
          Dst:             strerror
        - Src:             'wtmp.c:140,5'
          Dst:             pr_log_pri
        - Src:             'wtmp.c:143,5'
          Dst:             __errno_location
        - Src:             'wtmp.c:147,10'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'wtmp.c:149,7'
          Dst:             fstat
        - Src:             'wtmp.c:185,5'
          Dst:             sstrncpy
        - Src:             'wtmp.c:188,7'
          Dst:             sstrncpy
        - Src:             'wtmp.c:194,7'
          Dst:             sstrncpy
        - Src:             'wtmp.c:198,18'
          Dst:             time
        - Src:             'wtmp.c:200,9'
          Dst:             write
        - Src:             'wtmp.c:201,11'
          Dst:             ftruncate
        - Src:             'wtmp.c:203,20'
          Dst:             __errno_location
        - Src:             'wtmp.c:203,11'
          Dst:             strerror
        - Src:             'wtmp.c:202,9'
          Dst:             pr_log_debug
        - Src:             'wtmp.c:208,64'
          Dst:             __errno_location
        - Src:             'wtmp.c:208,55'
          Dst:             strerror
        - Src:             'wtmp.c:208,5'
          Dst:             pr_log_debug
    - functionName:    pr_help_add_response
      functionSourceFile: '/src/proftpd/src/help.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 156
      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:81,5'
          Dst:             __errno_location
        - Src:             'help.c:95,7'
          Dst:             pr_response_add
        - Src:             'help.c:107,25'
          Dst:             pstrcat
        - Src:             'help.c:117,15'
          Dst:             pr_snprintf
        - Src:             'help.c:119,24'
          Dst:             pstrcat
        - Src:             'help.c:127,13'
          Dst:             pr_response_add
        - Src:             'help.c:140,7'
          Dst:             pr_response_add
        - Src:             'help.c:146,11'
          Dst:             strcasecmp
        - Src:             'help.c:147,9'
          Dst:             pr_response_add
        - Src:             'help.c:154,3'
          Dst:             __errno_location
    - functionName:    pr_help_add
      functionSourceFile: '/src/proftpd/src/help.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 77
      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:47,17'
          Dst:             make_sub_pool
        - Src:             'help.c:48,5'
          Dst:             pr_pool_tag
        - Src:             'help.c:49,17'
          Dst:             make_array
        - Src:             'help.c:62,11'
          Dst:             strcmp
        - Src:             'help.c:73,10'
          Dst:             push_array
        - Src:             'help.c:74,15'
          Dst:             pstrdup
        - Src:             'help.c:75,18'
          Dst:             pstrdup
    - functionName:    child_update
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 147
      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:133,16'
          Dst:             close
        - Src:             'child.c:136,7'
          Dst:             xaset_remove
        - Src:             'child.c:137,7'
          Dst:             destroy_pool
        - Src:             'child.c:143,5'
          Dst:             destroy_pool
    - functionName:    child_signal
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      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:113,9'
          Dst:             kill
        - Src:             'child.c:115,53'
          Dst:             __errno_location
        - Src:             'child.c:115,44'
          Dst:             strerror
        - Src:             'child.c:114,7'
          Dst:             pr_trace_msg
    - functionName:    child_remove
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 103
      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:89,5'
          Dst:             __errno_location
        - Src:             'child.c:101,3'
          Dst:             __errno_location
    - functionName:    child_get
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 83
      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: 73
      functionLinenumberEnd: 74
      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_list_cleanup
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    child_add
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - child_list_cleanup
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - register_cleanup2
        - time
        - xaset_create
        - xaset_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'child.c:43,18'
          Dst:             make_sub_pool
        - Src:             'child.c:44,5'
          Dst:             pr_pool_tag
        - Src:             'child.c:50,17'
          Dst:             make_sub_pool
        - Src:             'child.c:51,5'
          Dst:             pr_pool_tag
        - Src:             'child.c:52,5'
          Dst:             register_cleanup2
        - Src:             'child.c:52,5'
          Dst:             child_list_cleanup
        - Src:             'child.c:54,18'
          Dst:             xaset_create
        - Src:             'child.c:57,7'
          Dst:             make_sub_pool
        - Src:             'child.c:58,3'
          Dst:             pr_pool_tag
        - Src:             'child.c:60,8'
          Dst:             pcalloc
        - Src:             'child.c:63,3'
          Dst:             time
        - Src:             'child.c:67,3'
          Dst:             xaset_insert
    - functionName:    pr_feat_get_next
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 92
      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:87,5'
          Dst:             __errno_location
        - Src:             'feat.c:91,10'
          Dst:             pr_table_next
    - functionName:    pr_feat_get
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 83
      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:77,5'
          Dst:             __errno_location
        - Src:             'feat.c:81,10'
          Dst:             pr_table_rewind
        - Src:             'feat.c:82,10'
          Dst:             pr_table_next
    - functionName:    pr_feat_remove
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 73
      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:57,5'
          Dst:             __errno_location
        - Src:             'feat.c:62,5'
          Dst:             __errno_location
        - Src:             'feat.c:66,9'
          Dst:             pr_table_remove
        - Src:             'feat.c:71,3'
          Dst:             __errno_location
    - functionName:    pr_feat_add
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 51
      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:33,5'
          Dst:             __errno_location
        - Src:             'feat.c:39,17'
          Dst:             make_sub_pool
        - Src:             'feat.c:40,5'
          Dst:             pr_pool_tag
        - Src:             'feat.c:41,16'
          Dst:             pr_table_alloc
        - Src:             'feat.c:45,7'
          Dst:             pr_table_exists
        - Src:             'feat.c:46,5'
          Dst:             __errno_location
        - Src:             'feat.c:50,33'
          Dst:             pstrdup
        - Src:             'feat.c:50,10'
          Dst:             pr_table_add
    - functionName:    xferlog_write
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 134
      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:84,16'
          Dst:             __ctype_b_loc
        - Src:             'xferlog.c:84,40'
          Dst:             __ctype_b_loc
        - Src:             'xferlog.c:89,19'
          Dst:             pr_table_get
        - Src:             'xferlog.c:97,9'
          Dst:             strcmp
        - Src:             'xferlog.c:108,16'
          Dst:             pr_session_get_protocol
        - Src:             'xferlog.c:109,14'
          Dst:             make_sub_pool
        - Src:             'xferlog.c:110,3'
          Dst:             pr_pool_tag
        - Src:             'xferlog.c:114,29'
          Dst:             time
        - Src:             'xferlog.c:114,7'
          Dst:             pr_strtime3
        - Src:             'xferlog.c:112,9'
          Dst:             pr_snprintf
        - Src:             'xferlog.c:130,3'
          Dst:             pr_log_event_generate
        - Src:             'xferlog.c:131,3'
          Dst:             destroy_pool
        - Src:             'xferlog.c:133,10'
          Dst:             write
    - functionName:    xferlog_open
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 65
      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:44,7'
          Dst:             xferlog_close
        - Src:             'xferlog.c:51,5'
          Dst:             pr_log_debug
        - Src:             'xferlog.c:52,5'
          Dst:             pr_log_openfile
        - Src:             'xferlog.c:55,20'
          Dst:             __errno_location
        - Src:             'xferlog.c:58,15'
          Dst:             strerror
        - Src:             'xferlog.c:57,7'
          Dst:             pr_log_pri
        - Src:             'xferlog.c:60,7'
          Dst:             __errno_location
    - functionName:    xferlog_close
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 38
      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:34,12'
          Dst:             close
    - functionName:    copy_symlink
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 190
      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:151,21'
          Dst:             pcalloc
        - Src:             'mkhome.c:154,9'
          Dst:             pr_fsio_readlink
        - Src:             'mkhome.c:156,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:159,17'
          Dst:             strerror
        - Src:             'mkhome.c:158,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:161,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:169,35'
          Dst:             strlen
        - Src:             'mkhome.c:169,7'
          Dst:             strncmp
        - Src:             'mkhome.c:170,49'
          Dst:             strlen
        - Src:             'mkhome.c:170,17'
          Dst:             pdircat
        - Src:             'mkhome.c:173,7'
          Dst:             pr_fsio_symlink
        - Src:             'mkhome.c:174,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:177,28'
          Dst:             strerror
        - Src:             'mkhome.c:176,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:179,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:184,7'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:186,17'
          Dst:             pr_uid2str
        - Src:             'mkhome.c:186,37'
          Dst:             pr_gid2str
        - Src:             'mkhome.c:186,66'
          Dst:             __errno_location
        - Src:             'mkhome.c:186,57'
          Dst:             strerror
        - Src:             'mkhome.c:185,5'
          Dst:             pr_log_pri
    - functionName:    create_dir
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 87
      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:37,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mkhome.c:38,9'
          Dst:             pr_fsio_stat
        - Src:             'mkhome.c:41,7'
          Dst:             __errno_location
        - Src:             'mkhome.c:42,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:45,7'
          Dst:             strerror
        - Src:             'mkhome.c:44,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:47,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:53,5'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:54,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:59,15'
          Dst:             umask
        - Src:             'mkhome.c:61,7'
          Dst:             pr_fsio_mkdir
        - Src:             'mkhome.c:62,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:64,5'
          Dst:             umask
        - Src:             'mkhome.c:66,7'
          Dst:             strerror
        - Src:             'mkhome.c:65,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:68,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:72,3'
          Dst:             umask
        - Src:             'mkhome.c:74,7'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:75,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:78,7'
          Dst:             strerror
        - Src:             'mkhome.c:77,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:80,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:84,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:85,3'
          Dst:             pr_log_debug
    - functionName:    copy_dir
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 283
      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:201,8'
          Dst:             opendir
        - Src:             'mkhome.c:203,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:206,16'
          Dst:             strerror
        - Src:             'mkhome.c:205,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:208,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:212,18'
          Dst:             readdir
        - Src:             'mkhome.c:216,5'
          Dst:             pr_signals_handle
        - Src:             'mkhome.c:219,9'
          Dst:             strcmp
        - Src:             'mkhome.c:220,9'
          Dst:             strcmp
        - Src:             'mkhome.c:224,16'
          Dst:             pdircat
        - Src:             'mkhome.c:225,16'
          Dst:             pdircat
        - Src:             'mkhome.c:227,9'
          Dst:             pr_fsio_lstat
        - Src:             'mkhome.c:229,28'
          Dst:             __errno_location
        - Src:             'mkhome.c:229,19'
          Dst:             strerror
        - Src:             'mkhome.c:228,7'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:235,7'
          Dst:             create_dir
        - Src:             'mkhome.c:236,7'
          Dst:             copy_dir
        - Src:             'mkhome.c:254,14'
          Dst:             pr_fs_copy_file
        - Src:             'mkhome.c:257,11'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:259,37'
          Dst:             pr_uid2str
        - Src:             'mkhome.c:259,57'
          Dst:             pr_gid2str
        - Src:             'mkhome.c:260,20'
          Dst:             __errno_location
        - Src:             'mkhome.c:260,11'
          Dst:             strerror
        - Src:             'mkhome.c:258,9'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:263,11'
          Dst:             pr_fsio_chmod
        - Src:             'mkhome.c:265,67'
          Dst:             __errno_location
        - Src:             'mkhome.c:265,58'
          Dst:             strerror
        - Src:             'mkhome.c:264,9'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:273,7'
          Dst:             copy_symlink
        - Src:             'mkhome.c:278,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:281,3'
          Dst:             closedir
    - functionName:    create_path
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 147
      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:98,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mkhome.c:99,7'
          Dst:             pr_fsio_stat
        - Src:             'mkhome.c:101,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:117,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:119,3'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:121,13'
          Dst:             pstrdup
        - Src:             'mkhome.c:127,5'
          Dst:             pr_signals_handle
        - Src:             'mkhome.c:129,15'
          Dst:             strsep
        - Src:             'mkhome.c:130,16'
          Dst:             pdircat
        - Src:             'mkhome.c:137,7'
          Dst:             create_dir
        - Src:             'mkhome.c:140,7'
          Dst:             create_dir
        - Src:             'mkhome.c:144,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:145,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: 289
      functionLinenumberEnd: 372
      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:297,7'
          Dst:             find_config
        - Src:             'mkhome.c:322,5'
          Dst:             pr_privs_user
        - Src:             'mkhome.c:325,5'
          Dst:             pr_privs_root
        - Src:             'mkhome.c:328,3'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:330,9'
          Dst:             create_path
        - Src:             'mkhome.c:334,7'
          Dst:             __errno_location
        - Src:             'mkhome.c:335,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:337,5'
          Dst:             pr_privs_relinquish
        - Src:             'mkhome.c:339,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:351,5'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:353,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:356,5'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:358,9'
          Dst:             copy_dir
        - Src:             'mkhome.c:359,7'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:362,7'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:367,5'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:370,3'
          Dst:             pr_privs_relinquish
    - functionName:    xfer_rate_sigmask
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 75
      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:42,5'
          Dst:             sigemptyset
        - Src:             'throttle.c:44,5'
          Dst:             sigaddset
        - Src:             'throttle.c:45,5'
          Dst:             sigaddset
        - Src:             'throttle.c:46,5'
          Dst:             sigaddset
        - Src:             'throttle.c:47,5'
          Dst:             sigaddset
        - Src:             'throttle.c:49,5'
          Dst:             sigaddset
        - Src:             'throttle.c:52,5'
          Dst:             sigaddset
        - Src:             'throttle.c:54,5'
          Dst:             sigaddset
        - Src:             'throttle.c:56,12'
          Dst:             sigprocmask
        - Src:             'throttle.c:57,11'
          Dst:             __errno_location
        - Src:             'throttle.c:58,9'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:66,12'
          Dst:             sigprocmask
        - Src:             'throttle.c:67,11'
          Dst:             __errno_location
        - Src:             'throttle.c:68,9'
          Dst:             pr_signals_handle
    - functionName:    xfer_rate_since
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 85
      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:82,3'
          Dst:             gettimeofday
    - functionName:    pr_throttle_pause
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 330
      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:220,13'
          Dst:             xfer_rate_since
        - Src:             'throttle.c:229,7'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:260,9'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:288,5'
          Dst:             pr_log_debug
        - Src:             'throttle.c:292,5'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:294,9'
          Dst:             select
        - Src:             'throttle.c:295,20'
          Dst:             __errno_location
        - Src:             'throttle.c:298,9'
          Dst:             pr_log_pri
        - Src:             'throttle.c:299,9'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:308,11'
          Dst:             strerror
        - Src:             'throttle.c:307,9'
          Dst:             pr_log_debug
        - Src:             'throttle.c:312,5'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:313,5'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:316,5'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:324,5'
          Dst:             pr_scoreboard_entry_update
    - functionName:    pr_throttle_init
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 209
      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:105,7'
          Dst:             find_config
        - Src:             'throttle.c:116,5'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:123,11'
          Dst:             strcasecmp
        - Src:             'throttle.c:131,11'
          Dst:             find_config_next
        - Src:             'throttle.c:136,11'
          Dst:             strcasecmp
        - Src:             'throttle.c:137,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'throttle.c:150,18'
          Dst:             strcasecmp
        - Src:             'throttle.c:151,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'throttle.c:164,18'
          Dst:             strcasecmp
        - Src:             'throttle.c:165,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'throttle.c:191,9'
          Dst:             find_config_next
        - Src:             'throttle.c:196,5'
          Dst:             pr_log_debug
    - functionName:    pr_throttle_have_rate
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      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: 67
      functionLinenumberEnd: 91
      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:72,5'
          Dst:             __errno_location
        - Src:             'filter.c:76,15'
          Dst:             strlen
        - Src:             'filter.c:80,5'
          Dst:             __errno_location
        - Src:             'filter.c:85,7'
          Dst:             strcmp
        - Src:             'filter.c:86,7'
          Dst:             strcmp
    - functionName:    pr_filter_allow_path
      functionSourceFile: '/src/proftpd/src/filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 65
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'filter.c:35,5'
          Dst:             __errno_location
        - Src:             'filter.c:40,9'
          Dst:             get_param_ptr
        - Src:             'filter.c:42,11'
          Dst:             pr_regexp_exec
        - Src:             'filter.c:48,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'filter.c:47,5'
          Dst:             pr_trace_msg
        - Src:             'filter.c:52,9'
          Dst:             get_param_ptr
        - Src:             'filter.c:54,11'
          Dst:             pr_regexp_exec
        - Src:             'filter.c:60,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'filter.c:59,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: 29
      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:39,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: 552
      functionLinenumberEnd: 568
      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:560,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:568,10'
          Dst:             pstrndup
    - functionName:    is_data_xfer_cmd
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 550
      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:539,7'
          Dst:             pr_cmd_cmp
        - 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
    - functionName:    get_meta_transfer_type
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1183
      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:1161,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1164,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1166,9'
          Dst:             strcmp
        - Src:             'jot.c:1167,9'
          Dst:             strcmp
    - functionName:    get_meta_transfer_speed
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1153
      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:1116,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1120,15'
          Dst:             pr_table_get
        - Src:             'jot.c:1133,3'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1134,3'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1150,3'
          Dst:             pr_snprintf
        - Src:             'jot.c:1152,10'
          Dst:             pstrdup
    - functionName:    get_meta_transfer_port
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1107
      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:1099,7'
          Dst:             pr_cmd_cmp
        - 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:             is_data_xfer_cmd
    - functionName:    get_meta_transfer_failure
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 906
      functionLinenumberEnd: 955
      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:912,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:915,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:917,9'
          Dst:             strcmp
        - Src:             'jot.c:918,9'
          Dst:             strcmp
        - Src:             'jot.c:919,9'
          Dst:             strcmp
        - Src:             'jot.c:928,15'
          Dst:             pr_response_get_last
        - Src:             'jot.c:936,19'
          Dst:             strchr
    - functionName:    get_meta_transfer_status
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1021
      functionLinenumberEnd: 1093
      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:1027,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1028,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1031,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1033,9'
          Dst:             strcmp
        - Src:             'jot.c:1034,9'
          Dst:             strcmp
        - Src:             'jot.c:1042,15'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1046,17'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1083,21'
          Dst:             pr_table_get
    - functionName:    get_meta_dir_path
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 764
      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:728,7'
          Dst:             pr_cmd_cmp
        - 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,32'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:737,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:739,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:740,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:751,18'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:751,11'
          Dst:             strcmp
        - Src:             'jot.c:755,52'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:755,20'
          Dst:             pdircat
        - Src:             'jot.c:760,18'
          Dst:             pr_fs_getcwd
    - functionName:    get_meta_dir_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 719
      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:682,7'
          Dst:             pr_cmd_cmp
        - 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:695,12'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:697,13'
          Dst:             strrchr
        - Src:             'jot.c:716,16'
          Dst:             pr_fs_getvwd
    - functionName:    get_meta_transfer_path
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 996
      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:964,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:965,38'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:965,21'
          Dst:             dir_best_path
        - Src:             'jot.c:976,9'
          Dst:             pr_cmd_cmp
        - 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,40'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:981,23'
          Dst:             dir_best_path
        - Src:             'jot.c:992,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:993,21'
          Dst:             dir_best_path
    - functionName:    get_meta_transfer_secs
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 999
      functionLinenumberEnd: 1019
      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:1011,5'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1012,5'
          Dst:             pr_gettimeofday_millis
    - functionName:    get_meta_filename
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 903
      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:773,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:774,32'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:774,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:776,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:779,12'
          Dst:             pr_table_get
        - Src:             'jot.c:781,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:784,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:785,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:788,12'
          Dst:             pr_table_get
        - Src:             'jot.c:790,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:795,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:797,14'
          Dst:             pr_cmd_cmp
        - 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,32'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:801,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:803,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:804,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:814,18'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:814,11'
          Dst:             strcmp
        - Src:             'jot.c:818,52'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:818,20'
          Dst:             pdircat
        - Src:             'jot.c:823,18'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:826,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:828,15'
          Dst:             strcasecmp
        - Src:             'jot.c:829,15'
          Dst:             strcasecmp
        - Src:             'jot.c:830,15'
          Dst:             strcasecmp
        - Src:             'jot.c:836,9'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:835,13'
          Dst:             pstrcat
        - Src:             'jot.c:839,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:846,9'
          Dst:             pr_cmd_cmp
        - 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:858,22'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:859,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:861,20'
          Dst:             dir_abs_path
        - Src:             'jot.c:868,16'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:872,22'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:873,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:876,20'
          Dst:             dir_abs_path
        - Src:             'jot.c:892,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:893,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:900,16'
          Dst:             pr_fsio_realpath
    - functionName:    get_meta_basename
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 673
      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:576,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:577,12'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:579,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:580,12'
          Dst:             pr_table_get
        - Src:             'jot.c:582,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:583,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:584,12'
          Dst:             pr_table_get
        - Src:             'jot.c:590,14'
          Dst:             pr_cmd_cmp
        - 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,12'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:596,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:597,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:607,21'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:607,14'
          Dst:             strcmp
        - Src:             'jot.c:607,45'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:612,15'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:615,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:617,15'
          Dst:             strcasecmp
        - Src:             'jot.c:618,15'
          Dst:             strcasecmp
        - Src:             'jot.c:619,15'
          Dst:             strcasecmp
        - Src:             'jot.c:625,9'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:624,13'
          Dst:             pstrcat
        - Src:             'jot.c:635,9'
          Dst:             pr_cmd_cmp
        - 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,15'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:647,16'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:649,14'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:656,11'
          Dst:             strrchr
    - functionName:    is_jottable_cmd_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2216
      functionLinenumberEnd: 2243
      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:2231,9'
          Dst:             strcmp
    - functionName:    is_jottable_cmd_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2198
      functionLinenumberEnd: 2209
      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:2203,9'
          Dst:             pr_cmd_cmp
    - functionName:    is_jottable_class
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2140
      functionLinenumberEnd: 2195
      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:2161,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2183,5'
          Dst:             pr_trace_msg
    - functionName:    jot_set_deleted_filesz
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3482
      functionLinenumberEnd: 3484
      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: 3473
      functionLinenumberEnd: 3480
      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:3475,5'
          Dst:             __errno_location
    - functionName:    pr_jot_filters_destroy
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3463
      functionLinenumberEnd: 3471
      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:3465,5'
          Dst:             __errno_location
        - Src:             'jot.c:3469,3'
          Dst:             destroy_pool
    - functionName:    pr_jot_filters_parse_sifts
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3437
      functionLinenumberEnd: 3461
      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:3445,5'
          Dst:             __errno_location
        - Src:             'jot.c:3449,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3450,47'
          Dst:             pstrdup
        - Src:             'jot.c:3450,11'
          Dst:             filter_text_to_array
        - Src:             'jot.c:3451,12'
          Dst:             __errno_location
        - Src:             'jot.c:3452,3'
          Dst:             destroy_pool
        - Src:             'jot.c:3455,5'
          Dst:             __errno_location
    - functionName:    filter_text_to_array
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3114
      functionLinenumberEnd: 3129
      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:3118,14'
          Dst:             strlen
        - Src:             'jot.c:3125,7'
          Dst:             memchr
        - Src:             'jot.c:3129,10'
          Dst:             pr_str_text_to_array
    - functionName:    filter_get_cmd_ids
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3284
      functionLinenumberEnd: 3368
      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:3290,13'
          Dst:             make_array
        - Src:             'jot.c:3295,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3299,14'
          Dst:             pr_cmd_get_id
        - Src:             'jot.c:3304,13'
          Dst:             strcmp
        - Src:             'jot.c:3312,20'
          Dst:             strcmp
        - Src:             'jot.c:3316,20'
          Dst:             strcmp
        - Src:             'jot.c:3320,20'
          Dst:             strcmp
        - Src:             'jot.c:3324,20'
          Dst:             strcmp
        - Src:             'jot.c:3328,20'
          Dst:             strcmp
        - Src:             'jot.c:3332,20'
          Dst:             strcmp
        - Src:             'jot.c:3336,20'
          Dst:             strcmp
        - Src:             'jot.c:3340,20'
          Dst:             strcmp
        - Src:             'jot.c:3344,20'
          Dst:             strcmp
        - Src:             'jot.c:3348,20'
          Dst:             strcmp
        - Src:             'jot.c:3352,20'
          Dst:             strcmp
        - Src:             'jot.c:3359,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:3364,17'
          Dst:             push_array
    - functionName:    filter_get_classes
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3133
      functionLinenumberEnd: 3281
      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:3142,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3151,9'
          Dst:             strcasecmp
        - Src:             'jot.c:3160,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3169,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3178,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3187,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3196,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3205,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3214,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3223,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3224,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3233,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3242,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3243,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3252,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3261,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3271,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:3273,7'
          Dst:             __errno_location
    - functionName:    pr_jot_filters_create
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3372
      functionLinenumberEnd: 3434
      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:3393,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:3380,5'
          Dst:             __errno_location
        - Src:             'jot.c:3387,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3388,3'
          Dst:             pr_pool_tag
        - Src:             'jot.c:3390,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3391,42'
          Dst:             pstrdup
        - Src:             'jot.c:3391,11'
          Dst:             filter_text_to_array
        - Src:             'jot.c:3397,13'
          Dst:             filter_get_classes
        - Src:             'jot.c:3400,22'
          Dst:             __errno_location
        - Src:             'jot.c:3402,9'
          Dst:             destroy_pool
        - Src:             'jot.c:3403,9'
          Dst:             destroy_pool
        - Src:             'jot.c:3404,9'
          Dst:             __errno_location
        - Src:             'jot.c:3413,17'
          Dst:             filter_get_cmd_ids
        - Src:             'jot.c:3418,7'
          Dst:             destroy_pool
        - Src:             'jot.c:3419,7'
          Dst:             destroy_pool
        - Src:             'jot.c:3420,7'
          Dst:             __errno_location
        - Src:             'jot.c:3424,3'
          Dst:             destroy_pool
        - Src:             'jot.c:3426,13'
          Dst:             pcalloc
    - functionName:    scan_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3036
      functionLinenumberEnd: 3076
      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:3045,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:3055,23'
          Dst:             get_meta_arg
    - functionName:    pr_jot_scan_logfmt
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3081
      functionLinenumberEnd: 3112
      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:3087,5'
          Dst:             __errno_location
        - Src:             'jot.c:3091,7'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:3092,5'
          Dst:             __errno_location
        - Src:             'jot.c:3097,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3104,13'
          Dst:             scan_meta
    - functionName:    pr_jot_get_logfmt_id_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 327
      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:96,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:322,7'
          Dst:             __errno_location
    - functionName:    parse_unknown_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2628
      functionLinenumberEnd: 2645
      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:2632,5'
          Dst:             __errno_location
        - Src:             'jot.c:2636,9'
          Dst:             strchr
        - Src:             'jot.c:2638,5'
          Dst:             __errno_location
    - functionName:    parse_long_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2648
      functionLinenumberEnd: 2828
      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:2651,7'
          Dst:             strncmp
        - Src:             'jot.c:2656,7'
          Dst:             strncmp
        - Src:             'jot.c:2659,11'
          Dst:             strchr
        - Src:             'jot.c:2672,7'
          Dst:             strncmp
        - Src:             'jot.c:2677,7'
          Dst:             strncmp
        - Src:             'jot.c:2682,7'
          Dst:             strncmp
        - Src:             'jot.c:2687,7'
          Dst:             strncmp
        - Src:             'jot.c:2692,7'
          Dst:             strncmp
        - Src:             'jot.c:2697,7'
          Dst:             strncasecmp
        - Src:             'jot.c:2702,7'
          Dst:             strncmp
        - Src:             'jot.c:2707,7'
          Dst:             strncmp
        - Src:             'jot.c:2712,7'
          Dst:             strncmp
        - Src:             'jot.c:2715,11'
          Dst:             strchr
        - Src:             'jot.c:2728,7'
          Dst:             strncmp
        - Src:             'jot.c:2731,11'
          Dst:             strchr
        - Src:             'jot.c:2744,7'
          Dst:             strncmp
        - Src:             'jot.c:2749,7'
          Dst:             strncmp
        - Src:             'jot.c:2754,7'
          Dst:             strncmp
        - Src:             'jot.c:2757,11'
          Dst:             strchr
        - Src:             'jot.c:2770,7'
          Dst:             strncmp
        - Src:             'jot.c:2775,7'
          Dst:             strncmp
        - Src:             'jot.c:2780,7'
          Dst:             strncmp
        - Src:             'jot.c:2785,7'
          Dst:             strncmp
        - Src:             'jot.c:2790,7'
          Dst:             strncmp
        - Src:             'jot.c:2795,7'
          Dst:             strncmp
        - Src:             'jot.c:2800,7'
          Dst:             strncmp
        - Src:             'jot.c:2805,7'
          Dst:             strncmp
        - Src:             'jot.c:2813,9'
          Dst:             parse_unknown_id
        - Src:             'jot.c:2826,3'
          Dst:             __errno_location
    - functionName:    parse_short_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2493
      functionLinenumberEnd: 2625
      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:2494,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2620,7'
          Dst:             __errno_location
    - functionName:    jot_parse_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2489
      functionLinenumberEnd: 2490
      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: 2485
      functionLinenumberEnd: 2486
      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: 2957
      functionLinenumberEnd: 3032
      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:2964,5'
          Dst:             __errno_location
        - Src:             'jot.c:2976,3'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2984,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:2996,11'
          Dst:             parse_short_id
        - Src:             'jot.c:3003,11'
          Dst:             parse_long_id
        - Src:             'jot.c:3010,11'
          Dst:             parse_unknown_id
        - Src:             'jot.c:3013,9'
          Dst:             pr_trace_msg
    - functionName:    jot_parsed_append_byte
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2830
      functionLinenumberEnd: 2836
      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:2832,5'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2936
      functionLinenumberEnd: 2952
      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:2940,5'
          Dst:             __errno_location
        - Src:             'jot.c:2946,5'
          Dst:             __errno_location
        - Src:             'jot.c:2950,3'
          Dst:             jot_parsed_append_byte
    - functionName:    jot_parsed_append_text
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2839
      functionLinenumberEnd: 2863
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2851,3'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_unknown
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2918
      functionLinenumberEnd: 2934
      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:2922,5'
          Dst:             __errno_location
        - Src:             'jot.c:2928,5'
          Dst:             __errno_location
        - Src:             'jot.c:2932,3'
          Dst:             jot_parsed_append_text
    - functionName:    jot_parsed_append_arg
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2878
      functionLinenumberEnd: 2895
      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:2890,5'
          Dst:             jot_parsed_append_text
    - functionName:    jot_parsed_append_var
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2866
      functionLinenumberEnd: 2875
      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:2870,18'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2869,5'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2898
      functionLinenumberEnd: 2915
      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:2902,5'
          Dst:             __errno_location
        - Src:             'jot.c:2908,5'
          Dst:             __errno_location
        - Src:             'jot.c:2912,3'
          Dst:             jot_parsed_append_var
        - Src:             'jot.c:2913,3'
          Dst:             jot_parsed_append_arg
    - functionName:    resolve_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2137
      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:2098,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2106,23'
          Dst:             get_meta_arg
        - Src:             'jot.c:2120,17'
          Dst:             pstrndup
        - Src:             'jot.c:2122,9'
          Dst:             resolve_logfmt_id
    - functionName:    resolve_logfmt_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 2083
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         299
      ICount:          2251
      EdgeCount:       378
      CyclomaticComplexity: 81
      functionsReached:
        - __ctype_b_loc
        - __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:1212,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:1193,7'
          Dst:             pr_trace_get_level
        - Src:             'jot.c:1196,15'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:1203,27'
          Dst:             strlen
        - Src:             'jot.c:1200,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1206,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1216,18'
          Dst:             get_meta_basename
        - Src:             'jot.c:1235,18'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1262,14'
          Dst:             gettimeofday
        - Src:             'jot.c:1271,18'
          Dst:             get_meta_filename
        - Src:             'jot.c:1285,14'
          Dst:             pr_table_get
        - Src:             'jot.c:1302,14'
          Dst:             pr_table_get
        - Src:             'jot.c:1322,15'
          Dst:             pr_env_get
        - Src:             'jot.c:1326,24'
          Dst:             pstrcat
        - Src:             'jot.c:1340,14'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'jot.c:1348,36'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'jot.c:1348,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'jot.c:1357,21'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'jot.c:1359,29'
          Dst:             pr_netaddr_get_port
        - Src:             'jot.c:1359,23'
          Dst:             ntohs
        - Src:             'jot.c:1372,20'
          Dst:             pr_table_get
        - Src:             'jot.c:1395,13'
          Dst:             time
        - Src:             'jot.c:1396,12'
          Dst:             pr_gmtime
        - Src:             'jot.c:1405,9'
          Dst:             strftime
        - Src:             'jot.c:1418,11'
          Dst:             get_meta_transfer_secs
        - Src:             'jot.c:1437,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1441,20'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1445,22'
          Dst:             get_full_cmd
        - Src:             'jot.c:1487,36'
          Dst:             pr_netaddr_get_sess_local_addr
        - Src:             'jot.c:1487,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'jot.c:1495,38'
          Dst:             pr_netaddr_get_sess_local_addr
        - Src:             'jot.c:1495,16'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'jot.c:1514,19'
          Dst:             pr_table_get
        - Src:             'jot.c:1530,14'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1533,20'
          Dst:             atoi
        - Src:             'jot.c:1537,18'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1566,19'
          Dst:             pr_table_get
        - Src:             'jot.c:1580,11'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1596,15'
          Dst:             __ctype_b_loc
        - Src:             'jot.c:1597,19'
          Dst:             toupper
        - Src:             'jot.c:1601,15'
          Dst:             pr_snprintf
        - Src:             'jot.c:1604,18'
          Dst:             pstrndup
        - Src:             'jot.c:1620,23'
          Dst:             get_meta_transfer_path
        - Src:             'jot.c:1634,18'
          Dst:             get_meta_dir_name
        - Src:             'jot.c:1648,18'
          Dst:             get_meta_dir_path
        - Src:             'jot.c:1668,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1669,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1673,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:1691,14'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1706,18'
          Dst:             pr_table_get
        - Src:             'jot.c:1711,9'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1726,15'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1740,11'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1743,21'
          Dst:             pr_table_get
        - Src:             'jot.c:1762,13'
          Dst:             pr_table_get
        - Src:             'jot.c:1764,13'
          Dst:             strcasecmp
        - Src:             'jot.c:1780,20'
          Dst:             geteuid
        - Src:             'jot.c:1794,20'
          Dst:             getegid
        - Src:             'jot.c:1821,15'
          Dst:             pr_session_get_disconnect_reason
        - Src:             'jot.c:1824,22'
          Dst:             pstrcat
        - Src:             'jot.c:1856,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1860,16'
          Dst:             pr_table_get
        - Src:             'jot.c:1864,18'
          Dst:             pr_table_get
        - Src:             'jot.c:1870,24'
          Dst:             pstrcat
        - Src:             'jot.c:1886,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1892,15'
          Dst:             pstrcat
        - Src:             'jot.c:1894,15'
          Dst:             pr_var_get
        - Src:             'jot.c:1898,24'
          Dst:             pstrcat
        - Src:             'jot.c:1903,35'
          Dst:             __errno_location
        - Src:             'jot.c:1903,26'
          Dst:             strerror
        - Src:             'jot.c:1902,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1914,25'
          Dst:             get_meta_transfer_status
        - Src:             'jot.c:1928,26'
          Dst:             get_meta_transfer_failure
        - Src:             'jot.c:1949,11'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1950,11'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1969,23'
          Dst:             get_meta_transfer_port
        - Src:             'jot.c:1986,24'
          Dst:             get_meta_transfer_speed
        - Src:             'jot.c:2000,23'
          Dst:             get_meta_transfer_type
        - Src:             'jot.c:2015,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2026,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2039,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2040,12'
          Dst:             pr_localtime
        - Src:             'jot.c:2046,15'
          Dst:             strftime
        - Src:             'jot.c:2051,9'
          Dst:             pr_snprintf
        - Src:             'jot.c:2073,7'
          Dst:             pr_trace_msg
    - functionName:    jot_resolve_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2304
      functionLinenumberEnd: 2305
      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: 2380
      functionLinenumberEnd: 2482
      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:2439,5'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2388,5'
          Dst:             __errno_location
        - Src:             'jot.c:2392,14'
          Dst:             is_jottable
        - Src:             'jot.c:2394,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2396,5'
          Dst:             __errno_location
        - Src:             'jot.c:2412,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:2445,13'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2443,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2458,13'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2456,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2469,15'
          Dst:             resolve_meta
    - functionName:    is_jottable
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2246
      functionLinenumberEnd: 2295
      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:2256,18'
          Dst:             is_jottable_class
        - Src:             'jot.c:2262,20'
          Dst:             is_jottable_cmd_id
        - Src:             'jot.c:2274,22'
          Dst:             is_jottable_class
        - Src:             'jot.c:2276,20'
          Dst:             is_jottable_cmd_name
    - functionName:    jot_resolve_on_default
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2299
      functionLinenumberEnd: 2300
      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: 2313
      functionLinenumberEnd: 2373
      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:2344,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2319,5'
          Dst:             __errno_location
        - Src:             'jot.c:2327,5'
          Dst:             __errno_location
        - Src:             'jot.c:2335,14'
          Dst:             is_jottable
        - Src:             'jot.c:2337,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2339,5'
          Dst:             __errno_location
        - Src:             'jot.c:2347,35'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2346,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2358,35'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2357,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2370,9'
          Dst:             resolve_logfmt_id
    - functionName:    pr_jot_on_json
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 536
      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:510,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:474,5'
          Dst:             __errno_location
        - Src:             'jot.c:479,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:482,5'
          Dst:             __errno_location
        - Src:             'jot.c:487,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:490,5'
          Dst:             __errno_location
        - Src:             'jot.c:497,9'
          Dst:             pr_table_kget
        - Src:             'jot.c:500,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:503,5'
          Dst:             __errno_location
        - Src:             'jot.c:508,31'
          Dst:             pr_json_type_name
        - Src:             'jot.c:507,3'
          Dst:             pr_trace_msg
        - Src:             'jot.c:521,13'
          Dst:             pr_json_object_set_string
        - Src:             'jot.c:526,13'
          Dst:             pr_json_object_set_number
        - Src:             'jot.c:531,13'
          Dst:             pr_json_object_set_bool
    - functionName:    add_json_info
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 91
      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:82,7'
          Dst:             palloc
        - Src:             'jot.c:85,9'
          Dst:             palloc
        - Src:             'jot.c:89,10'
          Dst:             pr_table_kadd
    - functionName:    logfmt_json_keyhash
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 74
      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: 55
      functionLinenumberEnd: 61
      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: 330
      functionLinenumberEnd: 462
      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:334,5'
          Dst:             __errno_location
        - Src:             'jot.c:338,9'
          Dst:             pr_table_alloc
        - Src:             'jot.c:340,10'
          Dst:             pr_table_ctl
        - Src:             'jot.c:340,10'
          Dst:             logfmt_json_keycmp
        - Src:             'jot.c:342,10'
          Dst:             pr_table_ctl
        - Src:             'jot.c:342,10'
          Dst:             logfmt_json_keyhash
        - Src:             'jot.c:350,3'
          Dst:             add_json_info
        - Src:             'jot.c:352,3'
          Dst:             add_json_info
        - Src:             'jot.c:354,3'
          Dst:             add_json_info
        - Src:             'jot.c:356,3'
          Dst:             add_json_info
        - Src:             'jot.c:358,3'
          Dst:             add_json_info
        - Src:             'jot.c:360,3'
          Dst:             add_json_info
        - Src:             'jot.c:362,3'
          Dst:             add_json_info
        - Src:             'jot.c:364,3'
          Dst:             add_json_info
        - Src:             'jot.c:366,3'
          Dst:             add_json_info
        - Src:             'jot.c:368,3'
          Dst:             add_json_info
        - Src:             'jot.c:370,3'
          Dst:             add_json_info
        - Src:             'jot.c:372,3'
          Dst:             add_json_info
        - Src:             'jot.c:374,3'
          Dst:             add_json_info
        - Src:             'jot.c:376,3'
          Dst:             add_json_info
        - Src:             'jot.c:378,3'
          Dst:             add_json_info
        - Src:             'jot.c:380,3'
          Dst:             add_json_info
        - Src:             'jot.c:382,3'
          Dst:             add_json_info
        - Src:             'jot.c:384,3'
          Dst:             add_json_info
        - Src:             'jot.c:386,3'
          Dst:             add_json_info
        - Src:             'jot.c:388,3'
          Dst:             add_json_info
        - Src:             'jot.c:390,3'
          Dst:             add_json_info
        - Src:             'jot.c:392,3'
          Dst:             add_json_info
        - Src:             'jot.c:394,3'
          Dst:             add_json_info
        - Src:             'jot.c:396,3'
          Dst:             add_json_info
        - Src:             'jot.c:398,3'
          Dst:             add_json_info
        - Src:             'jot.c:400,3'
          Dst:             add_json_info
        - Src:             'jot.c:402,3'
          Dst:             add_json_info
        - Src:             'jot.c:404,3'
          Dst:             add_json_info
        - Src:             'jot.c:406,3'
          Dst:             add_json_info
        - Src:             'jot.c:408,3'
          Dst:             add_json_info
        - Src:             'jot.c:410,3'
          Dst:             add_json_info
        - Src:             'jot.c:412,3'
          Dst:             add_json_info
        - Src:             'jot.c:414,3'
          Dst:             add_json_info
        - Src:             'jot.c:416,3'
          Dst:             add_json_info
        - Src:             'jot.c:418,3'
          Dst:             add_json_info
        - Src:             'jot.c:420,3'
          Dst:             add_json_info
        - Src:             'jot.c:422,3'
          Dst:             add_json_info
        - Src:             'jot.c:424,3'
          Dst:             add_json_info
        - Src:             'jot.c:426,3'
          Dst:             add_json_info
        - Src:             'jot.c:428,3'
          Dst:             add_json_info
        - Src:             'jot.c:430,3'
          Dst:             add_json_info
        - Src:             'jot.c:432,3'
          Dst:             add_json_info
        - Src:             'jot.c:434,3'
          Dst:             add_json_info
        - Src:             'jot.c:436,3'
          Dst:             add_json_info
        - Src:             'jot.c:438,3'
          Dst:             add_json_info
        - Src:             'jot.c:440,3'
          Dst:             add_json_info
        - Src:             'jot.c:442,3'
          Dst:             add_json_info
        - Src:             'jot.c:444,3'
          Dst:             add_json_info
        - Src:             'jot.c:446,3'
          Dst:             add_json_info
        - Src:             'jot.c:448,3'
          Dst:             add_json_info
        - Src:             'jot.c:450,3'
          Dst:             add_json_info
        - Src:             'jot.c:452,3'
          Dst:             add_json_info
        - Src:             'jot.c:454,3'
          Dst:             add_json_info
        - Src:             'jot.c:456,3'
          Dst:             add_json_info
        - Src:             'jot.c:458,3'
          Dst:             add_json_info
    - functionName:    supp_grplist
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 170
      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: 173
      functionLinenumberEnd: 221
      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:177,7'
          Dst:             strlen
        - Src:             'pwgrent.c:185,15'
          Dst:             realloc
        - Src:             'pwgrent.c:195,3'
          Dst:             sstrncpy
        - Src:             'pwgrent.c:197,13'
          Dst:             strrchr
        - Src:             'pwgrent.c:203,15'
          Dst:             strchr
        - Src:             'pwgrent.c:208,5'
          Dst:             pr_log_pri
        - Src:             'pwgrent.c:217,18'
          Dst:             atoi
        - Src:             'pwgrent.c:218,18'
          Dst:             supp_grplist
    - functionName:    fgetbufline
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 155
      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:127,10'
          Dst:             fgets
        - Src:             'pwgrent.c:130,9'
          Dst:             strchr
        - Src:             'pwgrent.c:139,17'
          Dst:             realloc
        - Src:             'pwgrent.c:147,10'
          Dst:             strchr
    - functionName:    fgetgrent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     externalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 247
      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:231,10'
          Dst:             fgetbufline
        - Src:             'pwgrent.c:237,15'
          Dst:             strchr
        - Src:             'pwgrent.c:240,11'
          Dst:             supp_getgrent
    - functionName:    supp_getpwent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 97
      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:64,3'
          Dst:             sstrncpy
        - Src:             'pwgrent.c:85,22'
          Dst:             strtol
        - Src:             'pwgrent.c:89,22'
          Dst:             strtol
    - functionName:    fgetpwent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 113
      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:102,10'
          Dst:             fgets
        - Src:             'pwgrent.c:108,9'
          Dst:             strlen
        - Src:             'pwgrent.c:109,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: 802
      functionLinenumberEnd: 816
      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:811,14'
          Dst:             strlen
        - Src:             'mod_rlimit.c:814,5'
          Dst:             pr_fsio_guard_chroot
    - functionName:    rlimit_set_files
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 736
      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:682,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:687,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:692,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:700,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:706,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:719,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:720,11'
          Dst:             pr_rlimit_set_files
        - Src:             'mod_rlimit.c:721,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:722,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:726,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:725,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:729,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:733,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_memory
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 797
      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:743,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:748,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:753,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:761,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:767,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:780,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:781,11'
          Dst:             pr_rlimit_set_memory
        - Src:             'mod_rlimit.c:782,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:783,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:787,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:786,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:790,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:794,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_cpu
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 675
      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:621,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:626,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:631,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:639,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:645,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:658,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:659,11'
          Dst:             pr_rlimit_set_cpu
        - Src:             'mod_rlimit.c:660,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:661,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:665,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:664,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:668,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:672,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_core
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 614
      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:581,3'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:582,9'
          Dst:             pr_rlimit_set_core
        - Src:             'mod_rlimit.c:583,12'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:584,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:588,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:587,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:591,5'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:606,9'
          Dst:             prctl
        - Src:             'mod_rlimit.c:608,18'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:608,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:607,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:613,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: 818
      functionLinenumberEnd: 827
      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:823,3'
          Dst:             rlimit_set_core
        - Src:             'mod_rlimit.c:824,3'
          Dst:             rlimit_set_cpu
        - Src:             'mod_rlimit.c:825,3'
          Dst:             rlimit_set_memory
        - Src:             'mod_rlimit.c:826,3'
          Dst:             rlimit_set_files
    - functionName:    rlimit_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 568
      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:558,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:564,7'
          Dst:             pr_fsio_guard_chroot
    - functionName:    get_num_bytes
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 109
      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:62,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_rlimit.c:68,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:107,3'
          Dst:             __errno_location
    - functionName:    set_rlimitopenfiles
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 553
      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:417,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:417,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:427,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:428,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:428,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:428,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:428,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:428,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:431,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:431,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:431,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:431,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:431,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:435,7'
          Dst:             pr_rlimit_get_files
        - Src:             'mod_rlimit.c:437,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:437,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:436,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:443,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:444,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:446,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:447,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:448,17'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:453,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:456,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:456,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:464,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:465,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:466,15'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:471,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:474,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:474,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:485,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:486,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:487,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:489,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:496,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:497,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:498,17'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:503,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:506,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:506,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:514,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:515,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:516,15'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:521,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:524,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:524,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:535,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:536,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:538,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:542,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:549,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: 285
      functionLinenumberEnd: 406
      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:293,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:293,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:303,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:304,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:304,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:304,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:304,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:304,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:307,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:307,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:307,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:307,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:307,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:311,7'
          Dst:             pr_rlimit_get_memory
        - Src:             'mod_rlimit.c:312,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:314,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:314,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:313,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:320,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:321,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:323,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:324,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:328,11'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:329,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:329,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:335,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:336,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:340,13'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:341,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:341,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:350,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:351,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:352,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:354,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:361,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:362,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:366,11'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:367,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:367,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:373,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:374,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:378,13'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:379,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:379,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:388,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:389,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:391,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:395,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:402,10'
          Dst:             mod_create_ret
    - functionName:    set_rlimitcpu
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 282
      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:147,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:147,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:157,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:158,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:158,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:158,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:158,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:158,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:161,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:161,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:161,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:161,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:161,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:164,7'
          Dst:             pr_rlimit_get_cpu
        - Src:             'mod_rlimit.c:165,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:167,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:167,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:166,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:173,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:174,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:176,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:177,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:183,27'
          Dst:             strtoul
        - Src:             'mod_rlimit.c:186,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:186,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:194,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:195,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:201,29'
          Dst:             strtoul
        - Src:             'mod_rlimit.c:204,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:204,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:215,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:216,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:217,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:219,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:225,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:226,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:232,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:235,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:235,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:243,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:244,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:250,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:253,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:253,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:264,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:265,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:267,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:271,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:278,10'
          Dst:             mod_create_ret
    - functionName:    set_rlimitchroot
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 136
      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:116,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:116,3'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:117,3'
          Dst:             check_context
        - Src:             'mod_rlimit.c:117,3'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:117,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:117,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:117,3'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:119,15'
          Dst:             get_boolean
        - Src:             'mod_rlimit.c:121,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:121,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:124,7'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:125,16'
          Dst:             palloc
        - Src:             'mod_rlimit.c:128,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:135,10'
          Dst:             mod_create_ret
    - functionName:    rlimit_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 858
      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:841,3'
          Dst:             rlimit_set_cpu
        - Src:             'mod_rlimit.c:842,3'
          Dst:             rlimit_set_memory
        - Src:             'mod_rlimit.c:843,3'
          Dst:             rlimit_set_files
        - Src:             'mod_rlimit.c:845,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:855,5'
          Dst:             pr_event_register
        - Src:             'mod_rlimit.c:855,5'
          Dst:             rlimit_chroot_ev
    - functionName:    rlimit_init
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 834
      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:831,3'
          Dst:             pr_event_register
        - Src:             'mod_rlimit.c:831,3'
          Dst:             rlimit_postparse_ev
    - functionName:    file_size_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1057
      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: 1060
      functionLinenumberEnd: 1061
      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:1061,11'
          Dst:             file_size_cmp
    - functionName:    file_time_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1038
      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: 1041
      functionLinenumberEnd: 1042
      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:1042,11'
          Dst:             file_time_cmp
    - functionName:    sortfiles
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1111
      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:1074,7'
          Dst:             qsort
        - Src:             'mod_ls.c:1081,9'
          Dst:             addfile
        - Src:             'mod_ls.c:1094,7'
          Dst:             qsort
        - Src:             'mod_ls.c:1101,9'
          Dst:             addfile
    - functionName:    addfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_response_add
        - pr_snprintf
        - pstrdup
        - push_array
        - register_cleanup2
        - sendline
        - sort_cleanup
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:975,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:978,14'
          Dst:             sendline
        - Src:             'mod_ls.c:985,17'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:986,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:987,5'
          Dst:             register_cleanup2
        - Src:             'mod_ls.c:987,5'
          Dst:             sort_cleanup
        - Src:             'mod_ls.c:994,18'
          Dst:             make_array
        - Src:             'mod_ls.c:997,34'
          Dst:             push_array
        - Src:             'mod_ls.c:1000,15'
          Dst:             pstrdup
        - Src:             'mod_ls.c:1001,17'
          Dst:             pstrdup
        - Src:             'mod_ls.c:1006,7'
          Dst:             strlen
        - Src:             'mod_ls.c:1006,22'
          Dst:             strlen
        - Src:             'mod_ls.c:1011,27'
          Dst:             pcalloc
        - Src:             'mod_ls.c:1012,13'
          Dst:             pcalloc
        - Src:             'mod_ls.c:1013,3'
          Dst:             pr_snprintf
    - functionName:    sendline
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 437
      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:341,17'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_ls.c:342,29'
          Dst:             pcalloc
        - Src:             'mod_ls.c:343,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:348,44'
          Dst:             strlen
        - Src:             'mod_ls.c:364,13'
          Dst:             pr_data_xfer
        - Src:             'mod_ls.c:366,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:367,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:375,11'
          Dst:             strerror
        - Src:             'mod_ls.c:374,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:385,7'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:394,3'
          Dst:             pr_vsnprintf
        - Src:             'mod_ls.c:400,42'
          Dst:             strlen
        - Src:             'mod_ls.c:402,12'
          Dst:             strlen
        - Src:             'mod_ls.c:410,11'
          Dst:             pr_data_xfer
        - Src:             'mod_ls.c:412,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:413,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:421,9'
          Dst:             strerror
        - Src:             'mod_ls.c:420,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:428,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:433,3'
          Dst:             sstrcat
    - functionName:    sort_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ls_fmt_filesize
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 466
      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:452,5'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:464,5'
          Dst:             pr_snprintf
    - functionName:    is_safe_symlink
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 215
      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:199,28'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:199,17'
          Dst:             pdircat
        - Src:             'mod_ls.c:202,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:203,14'
          Dst:             strlen
        - Src:             'mod_ls.c:209,17'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:209,9'
          Dst:             strncmp
    - functionName:    discard_output
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1248
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1245,5'
          Dst:             destroy_pool
    - functionName:    listdir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1596
      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:1371,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1383,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1396,13'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:1397,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:1401,13'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:1402,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:1406,3'
          Dst:             sreaddir
        - Src:             'mod_ls.c:1415,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1418,34'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:1422,15'
          Dst:             listfile
        - Src:             'mod_ls.c:1426,13'
          Dst:             listfile
        - Src:             'mod_ls.c:1446,9'
          Dst:             outputfiles
        - Src:             'mod_ls.c:1448,9'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1456,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1469,18'
          Dst:             strcmp
        - Src:             'mod_ls.c:1469,42'
          Dst:             strcmp
        - Src:             'mod_ls.c:1477,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1483,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1495,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1503,7'
          Dst:             push_cwd
        - Src:             'mod_ls.c:1505,17'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:1506,12'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:1510,13'
          Dst:             strcmp
        - Src:             'mod_ls.c:1514,20'
          Dst:             pdircat
        - Src:             'mod_ls.c:1518,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:1520,13'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:1519,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:1523,20'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:1522,20'
          Dst:             sendline
        - Src:             'mod_ls.c:1524,13'
          Dst:             sendline
        - Src:             'mod_ls.c:1525,11'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:1528,13'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1536,13'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1545,15'
          Dst:             listdir
        - Src:             'mod_ls.c:1547,9'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:1555,13'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1563,13'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1576,47'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1576,38'
          Dst:             strerror
        - Src:             'mod_ls.c:1575,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1580,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1589,7'
          Dst:             pr_signals_handle
    - functionName:    sreaddir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1357
      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:1266,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:1267,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:1272,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1276,7'
          Dst:             pr_fsio_opendir
        - Src:             'mod_ls.c:1300,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1305,5'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1306,5'
          Dst:             exit
        - Src:             'mod_ls.c:1311,16'
          Dst:             pr_fsio_readdir
        - Src:             'mod_ls.c:1312,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1321,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1325,7'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1328,24'
          Dst:             realloc
        - Src:             'mod_ls.c:1330,9'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1331,9'
          Dst:             exit
        - Src:             'mod_ls.c:1338,28'
          Dst:             strlen
        - Src:             'mod_ls.c:1338,21'
          Dst:             calloc
        - Src:             'mod_ls.c:1340,7'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1341,7'
          Dst:             exit
        - Src:             'mod_ls.c:1343,34'
          Dst:             strlen
        - Src:             'mod_ls.c:1343,5'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1346,3'
          Dst:             pr_fsio_closedir
        - Src:             'mod_ls.c:1353,5'
          Dst:             qsort
        - Src:             'mod_ls.c:1353,5'
          Dst:             dircmp
    - functionName:    listfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         231
      ICount:          1472
      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:700,5'
          Branch Sides:    []
        - Branch String:   'mod_ls.c:768,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ls.c:489,13'
          Dst:             strlen
        - Src:             'mod_ls.c:498,14'
          Dst:             pstrndup
        - Src:             'mod_ls.c:500,9'
          Dst:             strrchr
        - Src:             'mod_ls.c:510,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:523,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:524,7'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:529,20'
          Dst:             pstrdup
        - Src:             'mod_ls.c:537,25'
          Dst:             strlen
        - Src:             'mod_ls.c:543,24'
          Dst:             pcalloc
        - Src:             'mod_ls.c:549,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:566,25'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:579,22'
          Dst:             pstrdup
        - Src:             'mod_ls.c:588,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:594,14'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:603,17'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:607,17'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:621,13'
          Dst:             is_safe_symlink
        - Src:             'mod_ls.c:625,14'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:637,12'
          Dst:             ls_perms
        - Src:             'mod_ls.c:646,15'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:650,15'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:664,11'
          Dst:             is_safe_symlink
        - Src:             'mod_ls.c:668,12'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:672,17'
          Dst:             ls_perms
        - Src:             'mod_ls.c:680,32'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:683,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:688,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:719,11'
          Dst:             pr_gmtime
        - Src:             'mod_ls.c:722,11'
          Dst:             pr_localtime
        - Src:             'mod_ls.c:730,7'
          Dst:             strftime
        - Src:             'mod_ls.c:736,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:739,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:745,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:749,7'
          Dst:             addfile
        - Src:             'mod_ls.c:767,7'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:841,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:844,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:848,9'
          Dst:             ls_fmt_filesize
        - Src:             'mod_ls.c:853,13'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:852,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:860,15'
          Dst:             pr_auth_uid2name
        - Src:             'mod_ls.c:860,35'
          Dst:             pr_auth_gid2name
        - Src:             'mod_ls.c:862,15'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:858,13'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:870,15'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:866,13'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:877,34'
          Dst:             strlen
        - Src:             'mod_ls.c:881,17'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:895,36'
          Dst:             strlen
        - Src:             'mod_ls.c:896,51'
          Dst:             strlen
        - Src:             'mod_ls.c:896,15'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:899,15'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:908,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:911,11'
          Dst:             addfile
        - Src:             'mod_ls.c:919,22'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:919,9'
          Dst:             addfile
    - functionName:    outputfiles
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1241
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         82
      ICount:          423
      EdgeCount:       109
      CyclomaticComplexity: 29
      functionsReached:
        - destroy_pool
        - pr_signals_handle
        - sendline
        - sortfiles
        - sstrncpy
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1118,5'
          Dst:             sortfiles
        - Src:             'mod_ls.c:1124,11'
          Dst:             sendline
        - Src:             'mod_ls.c:1129,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1158,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1169,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1178,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1186,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1197,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1204,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1207,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1212,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1214,31'
          Dst:             strlen
        - Src:             'mod_ls.c:1222,13'
          Dst:             sendline
        - Src:             'mod_ls.c:1232,9'
          Dst:             sendline
        - Src:             'mod_ls.c:1237,3'
          Dst:             destroy_pool
    - functionName:    push_cwd
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 224
      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:222,18'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:222,3'
          Dst:             sstrncpy
    - functionName:    ls_perms_full
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 276
      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:241,14'
          Dst:             dir_realpath
        - Src:             'mod_ls.c:243,16'
          Dst:             dir_canonical_path
        - Src:             'mod_ls.c:248,16'
          Dst:             pstrdup
        - Src:             'mod_ls.c:252,11'
          Dst:             dir_check_canon
        - Src:             'mod_ls.c:255,11'
          Dst:             dir_check
        - Src:             'mod_ls.c:261,11'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:267,15'
          Dst:             get_param_ptr
    - functionName:    pop_cwd
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 234
      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:232,3'
          Dst:             pr_fsio_chdir
    - functionName:    ls_perms
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 322
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:285,7'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:290,12'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:294,33'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:294,22'
          Dst:             pdircat
        - Src:             'mod_ls.c:294,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:298,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:301,9'
          Dst:             dir_check
        - Src:             'mod_ls.c:306,11'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:312,15'
          Dst:             get_param_ptr
    - functionName:    dircmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1250
      functionLinenumberEnd: 1254
      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:1254,10'
          Dst:             strcmp
    - functionName:    ls_terminate
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1598
      functionLinenumberEnd: 1618
      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:1600,5'
          Dst:             discard_output
        - Src:             'mod_ls.c:1605,9'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:1609,60'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1608,9'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:1615,44'
          Dst:             strerror
        - Src:             'mod_ls.c:1615,5'
          Dst:             pr_response_add
    - functionName:    dolist
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 2331
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         258
      ICount:          1394
      EdgeCount:       352
      CyclomaticComplexity: 96
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - clear_list_opts
        - 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:1938,16'
          Dst:             time
        - Src:             'mod_ls.c:1941,5'
          Dst:             clear_list_opts
        - Src:             'mod_ls.c:1944,7'
          Dst:             have_options
        - Src:             'mod_ls.c:1946,7'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:1959,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1960,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1971,33'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1978,16'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1979,11'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2003,5'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:2029,12'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_ls.c:2031,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:2042,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:2043,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2045,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2046,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2056,9'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:2059,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2060,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:2061,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2068,44'
          Dst:             strerror
        - Src:             'mod_ls.c:2067,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2070,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2070,53'
          Dst:             strerror
        - Src:             'mod_ls.c:2069,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2072,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2078,10'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2086,11'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:2087,13'
          Dst:             pr_fs_glob
        - Src:             'mod_ls.c:2089,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2095,13'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2102,36'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2103,38'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2111,32'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2112,34'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2130,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2132,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2133,13'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:2138,24'
          Dst:             symlink_mode2
        - Src:             'mod_ls.c:2155,50'
          Dst:             strcmp
        - Src:             'mod_ls.c:2157,17'
          Dst:             listfile
        - Src:             'mod_ls.c:2158,15'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2161,17'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2176,11'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2177,9'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2180,11'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2193,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2196,13'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2202,15'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2204,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2203,15'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2208,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2207,15'
          Dst:             sendline
        - Src:             'mod_ls.c:2209,15'
          Dst:             sendline
        - Src:             'mod_ls.c:2214,11'
          Dst:             push_cwd
        - Src:             'mod_ls.c:2216,15'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:2220,19'
          Dst:             listdir
        - Src:             'mod_ls.c:2223,13'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2230,15'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2233,17'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2239,13'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2244,11'
          Dst:             discard_output
        - Src:             'mod_ls.c:2247,13'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2255,11'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2256,9'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2259,11'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2267,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2266,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2271,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2270,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2275,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2274,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2282,7'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2286,7'
          Dst:             discard_output
        - Src:             'mod_ls.c:2294,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:2295,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2297,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2298,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2305,9'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2308,13'
          Dst:             listfile
        - Src:             'mod_ls.c:2309,11'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2315,13'
          Dst:             listdir
        - Src:             'mod_ls.c:2316,11'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2324,9'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2325,7'
          Dst:             ls_terminate
    - functionName:    clear_list_opts
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    have_options
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1900
      functionLinenumberEnd: 1926
      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:1918,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:1919,9'
          Dst:             pr_fsio_stat
    - functionName:    parse_list_opts
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1620
      functionLinenumberEnd: 1888
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         150
      ICount:          757
      EdgeCount:       184
      CyclomaticComplexity: 36
      functionsReached:
        - __ctype_b_loc
        - pr_signals_handle
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mod_ls.c:1643,7'
          Branch Sides:    []
        - Branch String:   'mod_ls.c:1773,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ls.c:1628,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1629,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1640,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1642,24'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1744,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1745,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1770,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1772,24'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1869,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1870,7'
          Dst:             pr_signals_handle
    - functionName:    genericlist
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2656
      functionLinenumberEnd: 2768
      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:2663,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2671,7'
          Dst:             find_config
        - Src:             'mod_ls.c:2675,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2683,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2685,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2710,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2714,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2718,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2722,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2726,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2735,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2740,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:2743,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2746,7'
          Dst:             strerror
        - Src:             'mod_ls.c:2745,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2747,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2750,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2751,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2752,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2755,9'
          Dst:             dolist
        - Src:             'mod_ls.c:2758,5'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:2762,5'
          Dst:             ls_done
        - Src:             'mod_ls.c:2767,23'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2767,39'
          Dst:             mod_create_ret
    - functionName:    ls_done
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 446
      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:440,3'
          Dst:             pr_data_close2
        - Src:             'mod_ls.c:444,5'
          Dst:             pr_response_add
    - functionName:    find_ls_limit
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 179
      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:147,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:160,17'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:161,17'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:162,17'
          Dst:             strcasecmp
    - functionName:    nlstfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2337
      functionLinenumberEnd: 2435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          278
      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:2343,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2351,7'
          Dst:             dir_hide_file
        - Src:             'mod_ls.c:2355,18'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2363,23'
          Dst:             strlen
        - Src:             'mod_ls.c:2369,22'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2375,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2392,23'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:2405,20'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2416,11'
          Dst:             strrchr
        - Src:             'mod_ls.c:2420,25'
          Dst:             strlen
        - Src:             'mod_ls.c:2429,31'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2429,9'
          Dst:             sendline
    - functionName:    nlstdir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2441
      functionLinenumberEnd: 2653
      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:2457,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2469,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2477,11'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:2478,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:2480,44'
          Dst:             strcmp
        - Src:             'mod_ls.c:2490,5'
          Dst:             push_cwd
        - Src:             'mod_ls.c:2492,9'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:2493,7'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2495,7'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2504,3'
          Dst:             sreaddir
        - Src:             'mod_ls.c:2507,47'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2507,38'
          Dst:             strerror
        - Src:             'mod_ls.c:2506,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:2510,7'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2513,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2520,7'
          Dst:             find_ls_limit
        - Src:             'mod_ls.c:2522,29'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2534,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2537,32'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:2548,11'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:2552,11'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:2567,30'
          Dst:             dir_best_path
        - Src:             'mod_ls.c:2567,9'
          Dst:             ls_perms
        - Src:             'mod_ls.c:2572,14'
          Dst:             file_mode2
        - Src:             'mod_ls.c:2582,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2586,13'
          Dst:             pdircat
        - Src:             'mod_ls.c:2585,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2589,13'
          Dst:             sendline
        - Src:             'mod_ls.c:2600,15'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2611,35'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2611,13'
          Dst:             sendline
        - Src:             'mod_ls.c:2622,15'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2635,3'
          Dst:             sendline
        - Src:             'mod_ls.c:2638,5'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2640,3'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2647,5'
          Dst:             pr_signals_handle
    - functionName:    ls_err_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2775
      functionLinenumberEnd: 2777
      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:2776,3'
          Dst:             pr_data_cleanup
    - functionName:    ls_log_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2770
      functionLinenumberEnd: 2772
      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:2771,3'
          Dst:             pr_data_cleanup
    - functionName:    ls_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3502
      functionLinenumberEnd: 3518
      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:3506,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:3509,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3513,7'
          Dst:             find_config
    - functionName:    ls_stat
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2780
      functionLinenumberEnd: 2995
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         139
      ICount:          890
      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:2791,10'
          Dst:             dir_check
        - Src:             'mod_ls.c:2795,9'
          Dst:             strerror
        - Src:             'mod_ls.c:2794,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2797,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2798,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2799,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2802,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2804,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_ls.c:2803,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2805,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2806,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2810,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2820,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_ls.c:2817,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2823,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2829,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2835,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2838,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2839,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2845,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:2848,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2851,7'
          Dst:             strerror
        - Src:             'mod_ls.c:2850,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2852,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2855,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2856,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2857,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2864,28'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2869,25'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2873,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2881,7'
          Dst:             find_config
        - Src:             'mod_ls.c:2885,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2893,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2895,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2900,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2902,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2928,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2932,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2936,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2940,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2944,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2953,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2963,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2965,11'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:2968,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:2972,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2975,42'
          Dst:             strerror
        - Src:             'mod_ls.c:2974,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2976,48'
          Dst:             strerror
        - Src:             'mod_ls.c:2976,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2978,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2979,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2980,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2991,5'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2990,3'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2992,9'
          Dst:             dolist
        - Src:             'mod_ls.c:2993,3'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2994,23'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2994,39'
          Dst:             mod_create_ret
    - functionName:    ls_list
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2997
      functionLinenumberEnd: 3003
      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:3003,10'
          Dst:             genericlist
    - functionName:    ls_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3009
      functionLinenumberEnd: 3497
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         231
      ICount:          1530
      EdgeCount:       314
      CyclomaticComplexity: 85
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - clear_list_opts
        - 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:3020,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:3025,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:3028,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3031,7'
          Dst:             strerror
        - Src:             'mod_ls.c:3030,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3032,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3035,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3036,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3037,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3042,7'
          Dst:             find_config
        - Src:             'mod_ls.c:3046,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3054,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3056,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:3083,3'
          Dst:             clear_list_opts
        - Src:             'mod_ls.c:3085,7'
          Dst:             have_options
        - Src:             'mod_ls.c:3087,7'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:3100,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3101,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3112,36'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3119,16'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3120,11'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3144,5'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:3151,14'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3168,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_ls.c:3170,7'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:3171,7'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:3178,7'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:3186,11'
          Dst:             pr_fs_glob
        - Src:             'mod_ls.c:3188,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3196,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3197,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3198,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3204,34'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3205,36'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3210,17'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3211,28'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3213,15'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3214,15'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3215,22'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3219,13'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3220,13'
          Dst:             ls_done
        - Src:             'mod_ls.c:3222,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3226,55'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3226,46'
          Dst:             strerror
        - Src:             'mod_ls.c:3225,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3227,11'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3229,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3230,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3231,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3236,15'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3237,26'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3239,13'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3240,13'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3241,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3245,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3246,11'
          Dst:             ls_done
        - Src:             'mod_ls.c:3248,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3251,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3253,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3254,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3255,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3259,9'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3260,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3262,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3263,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3264,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3276,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3281,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3282,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3287,19'
          Dst:             nlstdir
        - Src:             'mod_ls.c:3291,17'
          Dst:             ls_perms
        - Src:             'mod_ls.c:3297,21'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3302,20'
          Dst:             ls_perms
        - Src:             'mod_ls.c:3308,17'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3313,5'
          Dst:             sendline
        - Src:             'mod_ls.c:3315,7'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:3325,17'
          Dst:             strlen
        - Src:             'mod_ls.c:3328,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3330,11'
          Dst:             strcmp
        - Src:             'mod_ls.c:3335,19'
          Dst:             strlen
        - Src:             'mod_ls.c:3338,10'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:3341,9'
          Dst:             pr_fs_clean_path2
        - Src:             'mod_ls.c:3344,9'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:3350,10'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:3351,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3355,13'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3356,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3358,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3359,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3360,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3363,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3364,9'
          Dst:             ls_done
        - Src:             'mod_ls.c:3366,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3370,9'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:3370,56'
          Dst:             strerror
        - Src:             'mod_ls.c:3369,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3372,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3373,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3374,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3379,11'
          Dst:             find_ls_limit
        - Src:             'mod_ls.c:3384,25'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:3389,17'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3390,24'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3392,15'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3393,15'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3394,22'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3397,13'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3398,13'
          Dst:             ls_done
        - Src:             'mod_ls.c:3400,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3410,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:3410,53'
          Dst:             strerror
        - Src:             'mod_ls.c:3409,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3412,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3413,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3414,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3421,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3422,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3423,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3427,13'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3428,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3430,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3431,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3432,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3435,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3436,9'
          Dst:             ls_done
        - Src:             'mod_ls.c:3438,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3442,44'
          Dst:             strerror
        - Src:             'mod_ls.c:3441,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3443,54'
          Dst:             strerror
        - Src:             'mod_ls.c:3443,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3445,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3446,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3447,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3451,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3452,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3454,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3455,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3456,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3460,13'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3463,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3464,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3466,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3467,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3468,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3472,13'
          Dst:             nlstdir
        - Src:             'mod_ls.c:3475,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3477,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3478,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3479,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3482,5'
          Dst:             sendline
        - Src:             'mod_ls.c:3486,5'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:3493,5'
          Dst:             ls_done
        - Src:             'mod_ls.c:3496,21'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3496,37'
          Dst:             mod_create_ret
    - functionName:    set_useglobbing
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3737
      functionLinenumberEnd: 3755
      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:3741,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3741,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3742,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3742,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3742,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3742,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3742,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3744,14'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3746,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3746,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3749,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3750,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3754,10'
          Dst:             mod_create_ret
    - functionName:    set_showsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3717
      functionLinenumberEnd: 3735
      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:3721,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3721,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3722,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3722,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3722,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3722,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3722,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3724,19'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3726,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3726,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3729,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3730,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3734,10'
          Dst:             mod_create_ret
    - functionName:    set_liststyle
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3689
      functionLinenumberEnd: 3715
      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:3694,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3694,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3695,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3695,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3695,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3695,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3695,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3697,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3700,7'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3703,14'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3707,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3707,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3707,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3711,16'
          Dst:             palloc
        - Src:             'mod_ls.c:3714,10'
          Dst:             mod_create_ret
    - functionName:    set_listoptions
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3582
      functionLinenumberEnd: 3686
      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:3587,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3587,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3590,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3590,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3590,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3590,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3590,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3593,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3596,16'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3599,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3603,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3607,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3611,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3615,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3623,11'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3626,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3627,24'
          Dst:             atoi
        - Src:             'mod_ls.c:3630,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3630,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3630,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3637,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3638,24'
          Dst:             atoi
        - Src:             'mod_ls.c:3641,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3641,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3641,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3648,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3649,23'
          Dst:             atoi
        - Src:             'mod_ls.c:3652,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3652,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3652,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3659,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3662,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3665,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3668,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3671,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3674,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3678,9'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3678,9'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3678,9'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3685,10'
          Dst:             mod_create_ret
    - functionName:    set_dirfakemode
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3560
      functionLinenumberEnd: 3580
      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:3565,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3565,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3566,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3566,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3566,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3566,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3566,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3569,24'
          Dst:             strtol
        - Src:             'mod_ls.c:3572,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3572,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3574,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3575,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3579,10'
          Dst:             mod_create_ret
    - functionName:    set_dirfakeusergroup
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3524
      functionLinenumberEnd: 3558
      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:3529,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3529,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3529,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3529,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3529,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3534,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3534,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3534,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3538,24'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3540,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3540,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3549,9'
          Dst:             add_config_param_str
        - Src:             'mod_ls.c:3553,9'
          Dst:             add_config_param_str
        - Src:             'mod_ls.c:3557,10'
          Dst:             mod_create_ret
    - functionName:    ls_init
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3760
      functionLinenumberEnd: 3767
      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:3763,3'
          Dst:             pr_help_add
        - Src:             'mod_ls.c:3764,3'
          Dst:             pr_help_add
        - Src:             'mod_ls.c:3765,3'
          Dst:             pr_help_add
    - functionName:    site_post_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 612
      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:607,7'
          Dst:             strcasecmp
        - Src:             'mod_site.c:608,5'
          Dst:             pr_response_add
    - functionName:    site_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          116
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - pcalloc
        - site_dispatch
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:586,12'
          Dst:             pcalloc
        - Src:             'mod_site.c:594,11'
          Dst:             __ctype_b_loc
        - Src:             'mod_site.c:595,15'
          Dst:             toupper
        - Src:             'mod_site.c:602,10'
          Dst:             site_dispatch
    - functionName:    site_dispatch
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 566
      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:538,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:540,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:541,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:542,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:546,9'
          Dst:             strcmp
        - Src:             'mod_site.c:549,9'
          Dst:             pr_response_send
        - Src:             'mod_site.c:551,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:552,9'
          Dst:             __errno_location
        - Src:             'mod_site.c:553,16'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:560,3'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:563,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:564,3'
          Dst:             __errno_location
        - Src:             'mod_site.c:565,10'
          Dst:             mod_create_ret
    - functionName:    site_help
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          318
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - __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:464,8'
          Dst:             dir_check_limits
        - Src:             'mod_site.c:467,5'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:473,7'
          Dst:             strerror
        - Src:             'mod_site.c:472,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:475,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:476,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:477,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:481,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:482,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:483,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:484,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:488,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:492,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:491,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:501,11'
          Dst:             __ctype_b_loc
        - Src:             'mod_site.c:502,15'
          Dst:             toupper
        - Src:             'mod_site.c:507,11'
          Dst:             strcasecmp
        - Src:             'mod_site.c:508,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:510,16'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:514,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:515,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:516,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:517,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:520,10'
          Dst:             mod_create_ret
    - functionName:    site_chgrp
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          309
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - core_chgrp
        - dir_realpath
        - full_cmd
        - mod_create_ret
        - pr_auth_name2gid
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_gid2str
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - site_filters_check
        - strerror
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:92,63'
          Dst:             full_cmd
        - Src:             'mod_site.c:92,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:102,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_site.c:105,20'
          Dst:             __errno_location
        - Src:             'mod_site.c:108,32'
          Dst:             strerror
        - Src:             'mod_site.c:107,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:109,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:113,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:114,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:115,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:118,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:121,7'
          Dst:             site_filters_check
        - Src:             'mod_site.c:122,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:124,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:125,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:126,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:129,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_site.c:130,10'
          Dst:             dir_realpath
        - Src:             'mod_site.c:132,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:134,47'
          Dst:             strerror
        - Src:             'mod_site.c:134,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:136,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:137,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:138,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:144,9'
          Dst:             strtoul
        - Src:             'mod_site.c:149,11'
          Dst:             pr_auth_name2gid
        - Src:             'mod_site.c:153,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:156,49'
          Dst:             strerror
        - Src:             'mod_site.c:156,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:158,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:159,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:160,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:164,9'
          Dst:             core_chgrp
        - Src:             'mod_site.c:166,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:170,7'
          Dst:             pr_uid2str
        - Src:             'mod_site.c:171,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:172,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:172,39'
          Dst:             strerror
        - Src:             'mod_site.c:168,12'
          Dst:             pr_trace_msg
        - Src:             'mod_site.c:174,47'
          Dst:             strerror
        - Src:             'mod_site.c:174,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:176,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:177,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:178,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:181,3'
          Dst:             pr_response_add
        - Src:             'mod_site.c:183,10'
          Dst:             mod_create_ret
    - functionName:    site_chmod
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         90
      ICount:          716
      EdgeCount:       107
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - core_chmod
        - dir_realpath
        - full_cmd
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - pstrdup
        - site_filters_check
        - strerror
        - strpbrk
        - strtol
        - umask
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_site.c:301,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:331,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:345,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:389,13'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_site.c:194,63'
          Dst:             full_cmd
        - Src:             'mod_site.c:194,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:204,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_site.c:207,20'
          Dst:             __errno_location
        - Src:             'mod_site.c:210,32'
          Dst:             strerror
        - Src:             'mod_site.c:209,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:211,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:215,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:216,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:217,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:220,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:223,7'
          Dst:             site_filters_check
        - Src:             'mod_site.c:224,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:226,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:227,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:228,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:231,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_site.c:232,9'
          Dst:             dir_realpath
        - Src:             'mod_site.c:234,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:236,47'
          Dst:             strerror
        - Src:             'mod_site.c:236,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:238,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:239,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:240,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:249,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:255,10'
          Dst:             strtol
        - Src:             'mod_site.c:259,60'
          Dst:             umask
        - Src:             'mod_site.c:263,5'
          Dst:             umask
        - Src:             'mod_site.c:266,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_site.c:271,7'
          Dst:             pr_signals_handle
        - Src:             'mod_site.c:273,13'
          Dst:             pstrdup
        - Src:             'mod_site.c:275,13'
          Dst:             strpbrk
        - Src:             'mod_site.c:277,15'
          Dst:             pstrdup
        - Src:             'mod_site.c:289,13'
          Dst:             strpbrk
        - Src:             'mod_site.c:291,16'
          Dst:             pstrdup
        - Src:             'mod_site.c:426,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:428,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:429,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:430,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:434,9'
          Dst:             core_chmod
        - Src:             'mod_site.c:436,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:440,7'
          Dst:             pr_uid2str
        - Src:             'mod_site.c:441,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:442,7'
          Dst:             strerror
        - Src:             'mod_site.c:438,12'
          Dst:             pr_trace_msg
        - Src:             'mod_site.c:444,52'
          Dst:             strerror
        - Src:             'mod_site.c:444,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:446,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:447,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:448,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:451,3'
          Dst:             pr_response_add
        - Src:             'mod_site.c:453,10'
          Dst:             mod_create_ret
    - functionName:    full_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 58
      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:48,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:51,12'
          Dst:             strlen
    - functionName:    site_filters_check
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_filter_allow_path
        - pr_log_pri
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mod_site.c:65,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_site.c:64,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_site.c:70,7'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:72,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:76,7'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:78,7'
          Dst:             __errno_location
    - functionName:    site_pre_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 578
      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:573,7'
          Dst:             strcasecmp
        - Src:             'mod_site.c:574,5'
          Dst:             pr_response_add
    - functionName:    site_init
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 622
      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:620,3'
          Dst:             pr_help_add
    - functionName:    get_procfs_mounts
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          218
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - endmntent
        - getmntent
        - make_array
        - palloc
        - pr_log_debug
        - pr_signals_handle
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - push_array
        - setmntent
        - strcmp
        - strerror
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:78,12'
          Dst:             setmntent
        - Src:             'mod_procfs.c:80,18'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:83,7'
          Dst:             strerror
        - Src:             'mod_procfs.c:82,5'
          Dst:             pr_trace_msg
        - Src:             'mod_procfs.c:84,5'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:88,9'
          Dst:             getmntent
        - Src:             'mod_procfs.c:93,5'
          Dst:             pr_signals_handle
        - Src:             'mod_procfs.c:95,9'
          Dst:             strcmp
        - Src:             'mod_procfs.c:96,7'
          Dst:             pr_log_debug
        - Src:             'mod_procfs.c:98,15'
          Dst:             palloc
        - Src:             'mod_procfs.c:99,21'
          Dst:             pstrdup
        - Src:             'mod_procfs.c:101,16'
          Dst:             strcmp
        - Src:             'mod_procfs.c:102,7'
          Dst:             pr_log_debug
        - Src:             'mod_procfs.c:104,15'
          Dst:             palloc
        - Src:             'mod_procfs.c:105,21'
          Dst:             pstrdup
        - Src:             'mod_procfs.c:113,18'
          Dst:             strlen
        - Src:             'mod_procfs.c:115,23'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:119,23'
          Dst:             pstrdup
        - Src:             'mod_procfs.c:124,25'
          Dst:             make_array
        - Src:             'mod_procfs.c:127,34'
          Dst:             push_array
        - Src:             'mod_procfs.c:130,11'
          Dst:             getmntent
        - Src:             'mod_procfs.c:133,7'
          Dst:             endmntent
        - Src:             'mod_procfs.c:135,16'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:135,7'
          Dst:             strerror
        - Src:             'mod_procfs.c:134,5'
          Dst:             pr_trace_msg
        - Src:             'mod_procfs.c:169,55'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:169,46'
          Dst:             strerror
        - Src:             'mod_procfs.c:168,5'
          Dst:             pr_log_debug
    - functionName:    setmntent
      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:    getmntent
      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:    endmntent
      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:    procfs_shutdown_ev
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - destroy_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:573,10'
          Dst:             close
        - Src:             'mod_procfs.c:577,5'
          Dst:             destroy_pool
    - functionName:    procfs_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - destroy_pool
        - make_sub_pool
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:561,10'
          Dst:             close
        - Src:             'mod_procfs.c:565,5'
          Dst:             destroy_pool
        - Src:             'mod_procfs.c:568,17'
          Dst:             make_sub_pool
        - Src:             'mod_procfs.c:569,3'
          Dst:             pr_pool_tag
    - functionName:    get_cmd_resp_code
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_cmd_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:253,7'
          Dst:             pr_cmd_cmp
        - Src:             'mod_procfs.c:254,7'
          Dst:             pr_cmd_cmp
        - Src:             'mod_procfs.c:255,7'
          Dst:             pr_cmd_cmp
    - functionName:    is_blocked_path
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          144
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - dir_abs_path
        - pr_signals_handle
        - pr_trace_msg
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:182,14'
          Dst:             dir_abs_path
        - Src:             'mod_procfs.c:183,17'
          Dst:             strlen
        - Src:             'mod_procfs.c:189,5'
          Dst:             pr_signals_handle
        - Src:             'mod_procfs.c:193,5'
          Dst:             pr_trace_msg
        - Src:             'mod_procfs.c:198,9'
          Dst:             strncmp
        - Src:             'mod_procfs.c:202,16'
          Dst:             strncmp
    - functionName:    handle_path
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - get_cmd_resp_code
        - is_blocked_path
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_log_pri
        - pr_log_writefile
        - pr_netaddr_get_ipstr
        - pr_response_add_err
        - pr_session_get_protocol
        - pr_trace_msg
        - strerror
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:264,3'
          Dst:             pr_trace_msg
        - Src:             'mod_procfs.c:266,7'
          Dst:             is_blocked_path
        - Src:             'mod_procfs.c:269,13'
          Dst:             pr_session_get_protocol
        - Src:             'mod_procfs.c:274,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_procfs.c:271,12'
          Dst:             pr_log_writefile
        - Src:             'mod_procfs.c:275,5'
          Dst:             pr_log_pri
        - Src:             'mod_procfs.c:278,17'
          Dst:             get_cmd_resp_code
        - Src:             'mod_procfs.c:279,55'
          Dst:             strerror
        - Src:             'mod_procfs.c:279,5'
          Dst:             pr_response_add_err
        - Src:             'mod_procfs.c:281,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_procfs.c:282,5'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:283,12'
          Dst:             mod_create_ret
    - functionName:    procfs_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - find_config
        - pr_trace_msg
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:514,7'
          Dst:             find_config
        - Src:             'mod_procfs.c:525,9'
          Dst:             strcmp
        - Src:             'mod_procfs.c:526,7'
          Dst:             pr_trace_msg
    - functionName:    procfs_sftp_pre_symlink
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - handle_path
        - pr_session_get_protocol
        - pstrdup
        - pstrndup
        - strchr
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:479,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_procfs.c:480,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:490,9'
          Dst:             strchr
        - Src:             'mod_procfs.c:495,14'
          Dst:             pstrndup
        - Src:             'mod_procfs.c:496,14'
          Dst:             pstrdup
        - Src:             'mod_procfs.c:498,8'
          Dst:             handle_path
        - Src:             'mod_procfs.c:503,10'
          Dst:             handle_path
    - functionName:    procfs_sftp_pre_path
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - handle_path
        - pr_session_get_protocol
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:425,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_procfs.c:426,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:431,10'
          Dst:             handle_path
    - functionName:    procfs_sftp_pre_hardlink
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - handle_path
        - pr_session_get_protocol
        - pstrdup
        - pstrndup
        - strchr
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:443,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_procfs.c:444,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:454,9'
          Dst:             strchr
        - Src:             'mod_procfs.c:459,14'
          Dst:             pstrndup
        - Src:             'mod_procfs.c:460,14'
          Dst:             pstrdup
        - Src:             'mod_procfs.c:462,8'
          Dst:             handle_path
        - Src:             'mod_procfs.c:467,10'
          Dst:             handle_path
    - functionName:    procfs_pre_site
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          348
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - handle_path
        - pr_trace_msg
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:359,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:360,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:361,7'
          Dst:             strcmp
        - Src:             'mod_procfs.c:374,13'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:377,16'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:379,12'
          Dst:             handle_path
        - Src:             'mod_procfs.c:381,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:382,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:383,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:384,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:386,16'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:388,12'
          Dst:             handle_path
        - Src:             'mod_procfs.c:390,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:391,14'
          Dst:             strcmp
        - Src:             'mod_procfs.c:399,16'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:403,10'
          Dst:             handle_path
        - Src:             'mod_procfs.c:408,12'
          Dst:             handle_path
        - Src:             'mod_procfs.c:411,5'
          Dst:             pr_trace_msg
    - functionName:    procfs_pre_mfmt
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - handle_path
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:307,9'
          Dst:             strchr
        - Src:             'mod_procfs.c:313,10'
          Dst:             handle_path
    - functionName:    procfs_pre_path
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - handle_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:330,10'
          Dst:             handle_path
    - functionName:    set_procfslog
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          122
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_fs_valid_path
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:239,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:239,3'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:240,3'
          Dst:             check_context
        - Src:             'mod_procfs.c:240,3'
          Dst:             get_context_name
        - Src:             'mod_procfs.c:240,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:240,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:240,3'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:242,7'
          Dst:             pr_fs_valid_path
        - Src:             'mod_procfs.c:243,5'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:243,5'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:246,10'
          Dst:             add_config_param_str
        - Src:             'mod_procfs.c:247,10'
          Dst:             mod_create_ret
    - functionName:    set_procfsengine
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 235
      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
        - palloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:222,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:222,3'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:223,3'
          Dst:             check_context
        - Src:             'mod_procfs.c:223,3'
          Dst:             get_context_name
        - Src:             'mod_procfs.c:223,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:223,3'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:223,3'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:225,12'
          Dst:             get_boolean
        - Src:             'mod_procfs.c:227,5'
          Dst:             pstrcat
        - Src:             'mod_procfs.c:227,5'
          Dst:             mod_create_ret
        - Src:             'mod_procfs.c:230,7'
          Dst:             add_config_param
        - Src:             'mod_procfs.c:231,16'
          Dst:             palloc
        - Src:             'mod_procfs.c:234,10'
          Dst:             mod_create_ret
    - functionName:    procfs_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - find_config
        - pr_log_debug
        - pr_log_openfile
        - pr_privs_relinquish
        - pr_privs_root
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_procfs.c:629,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_procfs.c:614,7'
          Dst:             find_config
        - Src:             'mod_procfs.c:620,7'
          Dst:             strcasecmp
        - Src:             'mod_procfs.c:624,3'
          Dst:             pr_privs_root
        - Src:             'mod_procfs.c:625,9'
          Dst:             pr_log_openfile
        - Src:             'mod_procfs.c:626,12'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:627,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_procfs.c:635,54'
          Dst:             strerror
        - Src:             'mod_procfs.c:634,7'
          Dst:             pr_log_debug
        - Src:             'mod_procfs.c:639,7'
          Dst:             pr_log_debug
        - Src:             'mod_procfs.c:644,7'
          Dst:             pr_log_debug
    - functionName:    procfs_init
      functionSourceFile: '/src/proftpd/modules/mod_procfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - destroy_pool
        - get_procfs_mounts
        - make_sub_pool
        - pr_event_register
        - pr_pool_tag
        - pr_trace_msg
        - procfs_restart_ev
        - procfs_shutdown_ev
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_procfs.c:588,5'
          Dst:             destroy_pool
        - Src:             'mod_procfs.c:591,17'
          Dst:             make_sub_pool
        - Src:             'mod_procfs.c:592,3'
          Dst:             pr_pool_tag
        - Src:             'mod_procfs.c:598,3'
          Dst:             pr_event_register
        - Src:             'mod_procfs.c:598,3'
          Dst:             procfs_restart_ev
        - Src:             'mod_procfs.c:599,3'
          Dst:             pr_event_register
        - Src:             'mod_procfs.c:599,3'
          Dst:             procfs_shutdown_ev
        - Src:             'mod_procfs.c:601,7'
          Dst:             get_procfs_mounts
        - Src:             'mod_procfs.c:603,16'
          Dst:             __errno_location
        - Src:             'mod_procfs.c:603,7'
          Dst:             strerror
        - Src:             'mod_procfs.c:602,5'
          Dst:             pr_trace_msg
    - functionName:    pr_rlimit_set_nproc
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      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:177,10'
          Dst:             set_rlimit
    - functionName:    set_rlimit
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 67
      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:66,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: 165
      functionLinenumberEnd: 167
      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:167,10'
          Dst:             get_rlimit
    - functionName:    get_rlimit
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 57
      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:34,5'
          Dst:             __errno_location
        - Src:             'rlimit.c:38,9'
          Dst:             getrlimit
        - Src:             'rlimit.c:41,9'
          Dst:             __errno_location
        - Src:             'rlimit.c:42,7'
          Dst:             __errno_location
    - functionName:    pr_rlimit_set_memory
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 154
      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:154,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_memory
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 138
      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:138,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_files
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 125
      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:125,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_files
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 112
      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:112,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_cpu
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      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:102,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_cpu
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 92
      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:92,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_core
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 82
      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:82,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_core
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 72
      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:72,10'
          Dst:             get_rlimit
...
