---
Fuzzer filename: '/src/dovecot/src/lib-var-expand/fuzz-var-expand-import.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/dovecot/src/lib-var-expand/fuzz-var-expand-import.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 15
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - fuzzer_deinit
        - fuzzer_init
        - i_panic
        - t_pop
        - t_push
        - var_expand_program_free
        - var_expand_program_import_sized
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzz-var-expand-import.c:7,1'
          Dst:             fuzzer_init
        - Src:             'fuzz-var-expand-import.c:7,1'
          Dst:             t_push
        - Src:             'fuzz-var-expand-import.c:12,6'
          Dst:             var_expand_program_import_sized
        - Src:             'fuzz-var-expand-import.c:13,3'
          Dst:             var_expand_program_free
        - Src:             'fuzz-var-expand-import.c:15,1'
          Dst:             t_pop
        - Src:             'fuzz-var-expand-import.c:15,1'
          Dst:             i_panic
        - Src:             'fuzz-var-expand-import.c:15,1'
          Dst:             fuzzer_deinit
    - functionName:    extract_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          223
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extract_name
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - memchr
        - p_strdup_until
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:511,20'
          Dst:             memchr
        - Src:             'expansion-program.c:521,13'
          Dst:             p_strdup_until
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_import_stmt
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          625
      EdgeCount:       114
      CyclomaticComplexity: 31
      functionsReached:
        - extract_name
        - extract_number
        - extract_value
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expansion-program.c:674,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-program.c:628,12'
          Dst:             extract_name
        - Src:             'expansion-program.c:638,3'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:638,3'
          Dst:             p_malloc
        - Src:             'expansion-program.c:654,4'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:654,4'
          Dst:             p_malloc
        - Src:             'expansion-program.c:660,10'
          Dst:             extract_name
        - Src:             'expansion-program.c:700,10'
          Dst:             extract_value
        - Src:             'expansion-program.c:707,10'
          Dst:             extract_number
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    extract_value
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - memchr
        - str_append_tabunescaped
        - str_c
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:533,20'
          Dst:             memchr
        - Src:             'expansion-program.c:539,24'
          Dst:             str_new
        - Src:             'expansion-program.c:540,2'
          Dst:             str_append_tabunescaped
        - Src:             'expansion-program.c:541,13'
          Dst:             str_c
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    export_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:280,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:287,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:290,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:302,3'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_import
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - strlen
        - var_expand_program_import_sized
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:861,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:862,47'
          Dst:             strlen
        - Src:             'expansion-program.c:862,9'
          Dst:             var_expand_program_import_sized
    - 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:    102
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_import_sized
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          158
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_alloconly_create
        - pool_unref
        - t_pop
        - t_push
        - var_expand_program_import_one
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:819,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:827,16'
          Dst:             pool_alloconly_create
        - Src:             'expansion-program.c:834,4'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:834,4'
          Dst:             p_malloc
        - Src:             'expansion-program.c:836,3'
          Dst:             t_push
        - Src:             'expansion-program.c:837,10'
          Dst:             var_expand_program_import_one
        - Src:             'expansion-program.c:839,5'
          Dst:             t_pop
        - Src:             'expansion-program.c:839,5'
          Dst:             i_panic
        - Src:             'expansion-program.c:850,3'
          Dst:             pool_unref
    - functionName:    var_expand_program_import_one
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          471
      EdgeCount:       77
      CyclomaticComplexity: 23
      functionsReached:
        - extract_value
        - malloc_multiply_check
        - memchr
        - p_malloc
        - p_strsplit
        - t_strdup_until
        - var_expand_program_import_stmt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:754,9'
          Dst:             extract_value
        - Src:             'expansion-program.c:761,4'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:761,4'
          Dst:             p_malloc
        - Src:             'expansion-program.c:763,4'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:763,4'
          Dst:             p_malloc
        - Src:             'expansion-program.c:775,14'
          Dst:             var_expand_program_import_stmt
        - Src:             'expansion-program.c:790,22'
          Dst:             memchr
        - Src:             'expansion-program.c:798,28'
          Dst:             t_strdup_until
        - Src:             'expansion-program.c:800,5'
          Dst:             p_strsplit
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_to_string
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_c
        - t_str_new
        - var_expand_program_to_string_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:496,19'
          Dst:             t_str_new
        - Src:             'expansion-program.c:497,2'
          Dst:             var_expand_program_to_string_append
        - Src:             'expansion-program.c:498,9'
          Dst:             str_c
    - functionName:    var_expand_program_to_string_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - var_expand_program_to_string_append_one
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:478,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:479,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:482,3'
          Dst:             var_expand_program_to_string_append_one
    - functionName:    var_expand_program_to_string_append_one
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          250
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - i_unreached
        - str_append
        - str_append_c
        - str_append_escaped
        - str_printfa
        - strcmp
        - strlen
        - var_expand_program_to_string_calculate
      functionUses:    2
      BranchProfiles:
        - Branch String:   'expansion-program.c:446,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-program.c:422,3'
          Dst:             i_panic
        - Src:             'expansion-program.c:424,3'
          Dst:             str_append
        - Src:             'expansion-program.c:427,2'
          Dst:             str_append
        - Src:             'expansion-program.c:431,7'
          Dst:             strcmp
        - Src:             'expansion-program.c:432,4'
          Dst:             var_expand_program_to_string_calculate
        - Src:             'expansion-program.c:435,3'
          Dst:             str_append
        - Src:             'expansion-program.c:438,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:443,5'
          Dst:             str_append
        - Src:             'expansion-program.c:444,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:448,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:450,10'
          Dst:             strlen
        - Src:             'expansion-program.c:449,5'
          Dst:             str_append_escaped
        - Src:             'expansion-program.c:451,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:454,5'
          Dst:             str_printfa
        - Src:             'expansion-program.c:457,5'
          Dst:             str_append
        - Src:             'expansion-program.c:460,5'
          Dst:             i_unreached
        - Src:             'expansion-program.c:464,5'
          Dst:             str_append
        - Src:             'expansion-program.c:467,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:469,23'
          Dst:             strcmp
        - Src:             'expansion-program.c:470,4'
          Dst:             str_append
        - Src:             'expansion-program.c:472,2'
          Dst:             str_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - 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:    102
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_to_string_calculate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - i_unreached
        - str_append_c
        - str_len
        - str_printfa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expansion-program.c:393,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-program.c:391,6'
          Dst:             str_len
        - Src:             'expansion-program.c:392,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:395,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:398,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:401,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:404,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:407,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:411,3'
          Dst:             i_unreached
        - Src:             'expansion-program.c:413,2'
          Dst:             str_append_c
        - Src:             'expansion-program.c:414,2'
          Dst:             str_printfa
    - functionName:    var_expand_program_to_string_one
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_c
        - t_str_new
        - var_expand_program_to_string_append_one
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:489,19'
          Dst:             t_str_new
        - Src:             'expansion-program.c:490,2'
          Dst:             var_expand_program_to_string_append_one
        - Src:             'expansion-program.c:491,9'
          Dst:             str_c
    - functionName:    var_expand_program_export
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_c
        - t_str_new
        - var_expand_program_export_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:382,19'
          Dst:             t_str_new
        - Src:             'expansion-program.c:383,2'
          Dst:             var_expand_program_export_append
        - Src:             'expansion-program.c:384,9'
          Dst:             str_c
    - functionName:    var_expand_program_export_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - str_append_c
        - str_append_tabescaped
        - var_expand_program_export_one
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:361,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:362,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:366,4'
          Dst:             i_panic
        - Src:             'expansion-program.c:368,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:369,4'
          Dst:             str_append_tabescaped
        - Src:             'expansion-program.c:370,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:372,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:373,4'
          Dst:             var_expand_program_export_one
    - functionName:    var_expand_program_export_one
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          210
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - export_number
        - i_panic
        - i_unreached
        - str_append
        - str_append_c
        - str_append_tabescaped
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expansion-program.c:318,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-program.c:311,3'
          Dst:             str_append
        - Src:             'expansion-program.c:312,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:316,5'
          Dst:             str_append
        - Src:             'expansion-program.c:317,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:320,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:321,5'
          Dst:             str_append_tabescaped
        - Src:             'expansion-program.c:322,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:325,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:326,5'
          Dst:             export_number
        - Src:             'expansion-program.c:329,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:330,5'
          Dst:             str_append_tabescaped
        - Src:             'expansion-program.c:331,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:334,5'
          Dst:             i_unreached
        - Src:             'expansion-program.c:338,5'
          Dst:             str_append_c
        - Src:             'expansion-program.c:340,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:343,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:345,4'
          Dst:             str_append_c
        - Src:             'expansion-program.c:351,3'
          Dst:             strchr
        - Src:             'expansion-program.c:351,3'
          Dst:             i_panic
        - Src:             'expansion-program.c:352,3'
          Dst:             str_append
        - Src:             'expansion-program.c:353,3'
          Dst:             str_append_c
        - Src:             'expansion-program.c:355,2'
          Dst:             str_append_c
    - 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:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_has_variable
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          122
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - str_array_find
        - strcmp
        - var_expand_program_variables
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:239,25'
          Dst:             var_expand_program_variables
        - Src:             'expansion-program.c:239,10'
          Dst:             str_array_find
        - Src:             'expansion-program.c:242,30'
          Dst:             strcmp
        - Src:             'expansion-program.c:248,8'
          Dst:             strcmp
    - functionName:    var_expand_program_variables
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_program_execute
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          146
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - p_free_internal
        - prepare_state
        - str_append_str
        - str_free
        - t_strdup
        - var_expand_program_execute_one_real
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:204,2'
          Dst:             prepare_state
        - Src:             'expansion-program.c:209,9'
          Dst:             var_expand_program_execute_one_real
        - Src:             'expansion-program.c:215,14'
          Dst:             t_strdup
        - Src:             'expansion-program.c:218,2'
          Dst:             str_free
        - Src:             'expansion-program.c:219,2'
          Dst:             p_free_internal
        - Src:             'expansion-program.c:222,3'
          Dst:             str_append_str
        - Src:             'expansion-program.c:223,2'
          Dst:             str_free
        - Src:             'expansion-program.c:224,2'
          Dst:             i_panic
    - functionName:    prepare_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          322
      EdgeCount:       81
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:95,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:97,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:101,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:118,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:122,20'
          Dst:             str_new
        - Src:             'expansion-program.c:123,22'
          Dst:             str_new
    - functionName:    var_expand_program_execute_one_real
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          228
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - binary_to_hex
        - i_panic
        - str_append
        - str_append_str
        - str_c
        - t_pop_pass_str
        - t_push
        - t_strdup
        - var_expand_execute_stmt
        - var_expand_state_set_transfer
        - var_expand_state_unset_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:138,2'
          Dst:             t_push
        - Src:             'expansion-program.c:141,9'
          Dst:             var_expand_execute_stmt
        - Src:             'expansion-program.c:148,4'
          Dst:             t_pop_pass_str
        - Src:             'expansion-program.c:148,4'
          Dst:             i_panic
        - Src:             'expansion-program.c:153,5'
          Dst:             binary_to_hex
        - Src:             'expansion-program.c:152,3'
          Dst:             var_expand_state_set_transfer
        - Src:             'expansion-program.c:157,50'
          Dst:             str_c
        - Src:             'expansion-program.c:157,4'
          Dst:             str_append
        - Src:             'expansion-program.c:160,5'
          Dst:             str_append_str
        - Src:             'expansion-program.c:162,14'
          Dst:             t_strdup
        - Src:             'expansion-program.c:165,2'
          Dst:             var_expand_state_unset_transfer
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:61,2'
          Dst:             buffer_append
    - functionName:    var_expand_program_execute_one
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - p_free_internal
        - prepare_state
        - str_append_str
        - str_free
        - t_strdup
        - var_expand_program_execute_one_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:176,2'
          Dst:             prepare_state
        - Src:             'expansion-program.c:180,8'
          Dst:             var_expand_program_execute_one_real
        - Src:             'expansion-program.c:183,14'
          Dst:             t_strdup
        - Src:             'expansion-program.c:186,2'
          Dst:             str_free
        - Src:             'expansion-program.c:187,2'
          Dst:             p_free_internal
        - Src:             'expansion-program.c:190,3'
          Dst:             str_append_str
        - Src:             'expansion-program.c:191,2'
          Dst:             str_free
        - Src:             'expansion-program.c:192,2'
          Dst:             i_panic
    - functionName:    var_expand_program_dump
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - str_printfa
        - var_expand_parameter_dump
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:77,4'
          Dst:             str_printfa
        - Src:             'expansion-program.c:79,5'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-program.c:80,11'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-program.c:82,6'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-program.c:83,5'
          Dst:             var_expand_parameter_dump
    - functionName:    var_expand_program_free
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:264,2'
          Dst:             pool_unref
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             '../../src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    var_expand_program_create
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-program.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          203
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_idx_i
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - pool_allocfree_create
        - pool_alloconly_create
        - pool_unref
        - strlen
        - t_pop_pass_str
        - t_push
        - t_strdup
        - t_strdup_printf
        - var_expand_parser_lex_init_extra
        - var_expand_parser_parse
        - var_expand_program_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-program.c:28,6'
          Dst:             strlen
        - Src:             'expansion-program.c:29,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-program.c:35,3'
          Dst:             pool_alloconly_create
        - Src:             'expansion-program.c:36,26'
          Dst:             malloc_multiply_check
        - Src:             'expansion-program.c:36,26'
          Dst:             p_malloc
        - Src:             'expansion-program.c:38,2'
          Dst:             array_create_i
        - Src:             'expansion-program.c:40,2'
          Dst:             t_push
        - Src:             'expansion-program.c:43,4'
          Dst:             pool_allocfree_create
        - Src:             'expansion-program.c:44,3'
          Dst:             array_create_i
        - Src:             'expansion-program.c:46,16'
          Dst:             strlen
        - Src:             'expansion-program.c:47,3'
          Dst:             var_expand_parser_lex_init_extra
        - Src:             'expansion-program.c:49,9'
          Dst:             var_expand_parser_parse
        - Src:             'expansion-program.c:50,17'
          Dst:             t_strdup
        - Src:             'expansion-program.c:51,4'
          Dst:             t_pop_pass_str
        - Src:             'expansion-program.c:51,4'
          Dst:             i_panic
        - Src:             'expansion-program.c:53,2'
          Dst:             array_append_space_i
        - Src:             'expansion-program.c:54,27'
          Dst:             array_idx_i
        - Src:             'expansion-program.c:55,2'
          Dst:             i_panic
        - Src:             'expansion-program.c:56,2'
          Dst:             pool_unref
        - Src:             'expansion-program.c:60,3'
          Dst:             var_expand_program_free
        - Src:             'expansion-program.c:64,2'
          Dst:             i_panic
    - functionName:    lookup_table
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          182
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - strcmp
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:418,2'
          Dst:             i_panic
        - Src:             'var-expand.c:420,7'
          Dst:             strcmp
        - Src:             'var-expand.c:425,5'
          Dst:             i_panic
        - Src:             'var-expand.c:433,13'
          Dst:             t_strdup_printf
    - functionName:    call_provider_table
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:361,2'
          Dst:             i_panic
        - Src:             'var-expand.c:363,7'
          Dst:             strcmp
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_system_os
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_unreached
        - t_strdup_printf
        - uname
      functionUses:    2
      BranchProfiles:
        - Branch String:   'var-expand.c:66,2'
          Branch Sides:    []
      Callsites:
        - Src:             'var-expand.c:59,7'
          Dst:             uname
        - Src:             'var-expand.c:60,15'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:77,2'
          Dst:             i_unreached
    - 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:    var_expand_generate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          166
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - guid_128_generate
        - guid_128_to_string
        - guid_128_to_uuid_string
        - guid_128_uuid4_generate
        - guid_generate
        - str_begins
        - str_begins_builtin_success
        - strcmp
        - strncmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:236,6'
          Dst:             strcmp
        - Src:             'var-expand.c:237,14'
          Dst:             guid_generate
        - Src:             'var-expand.c:240,6'
          Dst:             strcmp
        - Src:             'var-expand.c:241,3'
          Dst:             guid_128_generate
        - Src:             'var-expand.c:242,14'
          Dst:             guid_128_to_string
        - Src:             'var-expand.c:245,6'
          Dst:             str_begins
        - Src:             'var-expand.c:245,6'
          Dst:             strncmp
        - Src:             'var-expand.c:245,6'
          Dst:             str_begins_builtin_success
        - Src:             'var-expand.c:246,3'
          Dst:             guid_128_uuid4_generate
        - Src:             'var-expand.c:247,25'
          Dst:             strcmp
        - Src:             'var-expand.c:248,15'
          Dst:             guid_128_to_uuid_string
        - Src:             'var-expand.c:249,12'
          Dst:             strcmp
        - Src:             'var-expand.c:250,15'
          Dst:             guid_128_to_uuid_string
        - Src:             'var-expand.c:251,12'
          Dst:             strcmp
        - Src:             'var-expand.c:252,15'
          Dst:             guid_128_to_uuid_string
        - Src:             'var-expand.c:254,4'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:257,2'
          Dst:             t_strdup_printf
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_time
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          157
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - dec2str
        - i_gettimeofday
        - i_nanoseconds
        - i_panic
        - localtime_r
        - strcmp
        - t_strdup_printf
        - t_strftime
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:199,6'
          Dst:             strcmp
        - Src:             'var-expand.c:202,17'
          Dst:             i_nanoseconds
        - Src:             'var-expand.c:203,14'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:211,2'
          Dst:             i_gettimeofday
        - Src:             'var-expand.c:212,6'
          Dst:             localtime_r
        - Src:             'var-expand.c:213,3'
          Dst:             i_panic
        - Src:             'var-expand.c:215,6'
          Dst:             strcmp
        - Src:             'var-expand.c:216,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:217,11'
          Dst:             strcmp
        - Src:             'var-expand.c:218,4'
          Dst:             strcmp
        - Src:             'var-expand.c:219,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:220,11'
          Dst:             strcmp
        - Src:             'var-expand.c:221,4'
          Dst:             strcmp
        - Src:             'var-expand.c:222,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:223,11'
          Dst:             strcmp
        - Src:             'var-expand.c:224,4'
          Dst:             strcmp
        - Src:             'var-expand.c:225,14'
          Dst:             dec2str
        - Src:             'var-expand.c:227,3'
          Dst:             t_strdup_printf
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_date
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_gettimeofday
        - i_panic
        - localtime_r
        - strcmp
        - t_strdup_printf
        - t_strftime
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:181,2'
          Dst:             i_gettimeofday
        - Src:             'var-expand.c:182,6'
          Dst:             localtime_r
        - Src:             'var-expand.c:183,3'
          Dst:             i_panic
        - Src:             'var-expand.c:185,6'
          Dst:             strcmp
        - Src:             'var-expand.c:186,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:187,11'
          Dst:             strcmp
        - Src:             'var-expand.c:188,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:189,11'
          Dst:             strcmp
        - Src:             'var-expand.c:190,14'
          Dst:             t_strftime
        - Src:             'var-expand.c:192,3'
          Dst:             t_strdup_printf
    - functionName:    var_expand_event
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_find_field_recursive_str
        - event_get_global
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:158,11'
          Dst:             event_get_global
        - Src:             'var-expand.c:164,22'
          Dst:             event_find_field_recursive_str
        - Src:             'var-expand.c:167,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_env
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getenv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:141,22'
          Dst:             getenv
    - 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:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_dovecot
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:112,6'
          Dst:             strcmp
        - Src:             'var-expand.c:115,13'
          Dst:             strcmp
        - Src:             'var-expand.c:118,13'
          Dst:             strcmp
        - Src:             'var-expand.c:121,13'
          Dst:             strcmp
        - Src:             'var-expand.c:124,13'
          Dst:             strcmp
        - Src:             'var-expand.c:129,13'
          Dst:             t_strdup_printf
    - functionName:    var_expand_system
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - cpu_count_get
        - dec2str
        - getenv
        - strcmp
        - t_strdup_printf
        - var_expand_system_os
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:84,6'
          Dst:             strcmp
        - Src:             'var-expand.c:86,24'
          Dst:             getenv
        - Src:             'var-expand.c:91,7'
          Dst:             cpu_count_get
        - Src:             'var-expand.c:93,15'
          Dst:             dec2str
        - Src:             'var-expand.c:95,13'
          Dst:             strcmp
        - Src:             'var-expand.c:98,13'
          Dst:             strcmp
        - Src:             'var-expand.c:99,10'
          Dst:             var_expand_system_os
        - Src:             'var-expand.c:101,11'
          Dst:             strcmp
        - Src:             'var-expand.c:102,10'
          Dst:             var_expand_system_os
        - Src:             'var-expand.c:104,13'
          Dst:             t_strdup_printf
    - functionName:    var_expand_process
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - dec2str
        - getegid
        - geteuid
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:35,6'
          Dst:             strcmp
        - Src:             'var-expand.c:37,11'
          Dst:             strcmp
        - Src:             'var-expand.c:38,23'
          Dst:             geteuid
        - Src:             'var-expand.c:38,15'
          Dst:             dec2str
        - Src:             'var-expand.c:39,11'
          Dst:             strcmp
        - Src:             'var-expand.c:40,23'
          Dst:             getegid
        - Src:             'var-expand.c:40,15'
          Dst:             dec2str
        - Src:             'var-expand.c:42,14'
          Dst:             t_strdup_printf
    - 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:    8
      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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_var_expand
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_c
        - t_str_new
        - var_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:505,19'
          Dst:             t_str_new
        - Src:             'var-expand.c:506,12'
          Dst:             var_expand
        - Src:             'var-expand.c:509,14'
          Dst:             str_c
    - functionName:    var_expand
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - var_expand_program_create
        - var_expand_program_execute
        - var_expand_program_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:492,6'
          Dst:             var_expand_program_create
        - Src:             'var-expand.c:494,2'
          Dst:             i_panic
        - Src:             'var-expand.c:495,12'
          Dst:             var_expand_program_execute
        - Src:             'var-expand.c:496,2'
          Dst:             var_expand_program_free
    - functionName:    lookup_tables
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          127
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lookup_table
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:453,10'
          Dst:             lookup_table
        - Src:             'var-expand.c:457,14'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:461,9'
          Dst:             lookup_table
    - functionName:    call_value_provider
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          204
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - call_provider_table
        - i_panic
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:377,12'
          Dst:             call_provider_table
        - Src:             'var-expand.c:390,10'
          Dst:             call_provider_table
        - Src:             'var-expand.c:396,9'
          Dst:             call_provider_table
        - Src:             'var-expand.c:402,14'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:406,14'
          Dst:             t_strdup_printf
        - Src:             'var-expand.c:409,2'
          Dst:             i_panic
    - functionName:    var_expand_state_lookup_variable
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - call_value_provider
        - lookup_tables
        - strchr
        - t_strdup_until
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:470,9'
          Dst:             strchr
        - Src:             'var-expand.c:476,12'
          Dst:             t_strdup_until
        - Src:             'var-expand.c:481,10'
          Dst:             call_value_provider
        - Src:             'var-expand.c:483,10'
          Dst:             lookup_tables
    - functionName:    var_expand_state_unset_transfer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_truncate
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:350,2'
          Dst:             str_truncate
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    var_expand_state_set_transfer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - var_expand_state_set_transfer_data
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:343,9'
          Dst:             strlen
        - Src:             'var-expand.c:344,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    var_expand_state_set_transfer_data
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - str_append_data
        - str_truncate
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:322,2'
          Dst:             i_panic
        - Src:             'var-expand.c:325,2'
          Dst:             str_truncate
        - Src:             'var-expand.c:326,2'
          Dst:             str_append_data
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - functionName:    var_expand_state_set_transfer_binary
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - var_expand_state_set_transfer_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:333,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    var_expand_table_key_cmp
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 283
      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:             'var-expand.c:283,9'
          Dst:             strcmp
    - functionName:    array_lsearch_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 437
      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:
        - array_lsearch_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:437,17'
          Dst:             array_lsearch_i
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             '../../src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    var_expand_table_size
      functionSourceFile: '/src/dovecot/src/lib-var-expand/./var-expand.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_merge_tables
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          136
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_idx_modifiable_i
        - array_lsearch_modifiable_i
        - p_strdup
        - var_expand_table_key_cmp
        - var_expand_table_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:291,18'
          Dst:             var_expand_table_size
        - Src:             'var-expand.c:292,18'
          Dst:             var_expand_table_size
        - Src:             'var-expand.c:293,2'
          Dst:             array_create_i
        - Src:             'var-expand.c:296,4'
          Dst:             array_append_space_i
        - Src:             'var-expand.c:297,18'
          Dst:             p_strdup
        - Src:             'var-expand.c:298,16'
          Dst:             p_strdup
        - Src:             'var-expand.c:303,4'
          Dst:             array_lsearch_modifiable_i
        - Src:             'var-expand.c:303,4'
          Dst:             var_expand_table_key_cmp
        - Src:             'var-expand.c:310,11'
          Dst:             array_append_space_i
        - Src:             'var-expand.c:311,18'
          Dst:             p_strdup
        - Src:             'var-expand.c:312,16'
          Dst:             p_strdup
        - Src:             'var-expand.c:314,2'
          Dst:             array_append_space_i
        - Src:             'var-expand.c:315,9'
          Dst:             array_idx_modifiable_i
    - functionName:    var_expand_provider_is_builtin
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand.c'
      linkageType:     externalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand.c:275,7'
          Dst:             strcmp
    - functionName:    yystpcpy
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yytnamerr
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1238
      functionLinenumberEnd: 1276
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          137
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
        - yystpcpy
      functionUses:    3
      BranchProfiles:
        - Branch String:   'var-expand-parser.c:1245,9'
          Branch Sides:    []
      Callsites:
        - Src:             'var-expand-parser.c:1273,12'
          Dst:             yystpcpy
        - Src:             'var-expand-parser.c:1275,12'
          Dst:             strlen
    - functionName:    make_new_program
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:209,3'
          Dst:             malloc_multiply_check
        - Src:             'var-expand-parser.y:209,3'
          Dst:             p_malloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    link_argument
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          322
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - i_panic
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:131,12'
          Dst:             strcmp
        - Src:             'var-expand-parser.y:138,39'
          Dst:             strcmp
        - Src:             'var-expand-parser.y:150,3'
          Dst:             i_panic
    - functionName:    register_variable
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_bsearch_i
        - array_sort_i
        - i_strcmp_p
        - str_array_find
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:100,20'
          Dst:             str_array_find
        - Src:             'var-expand-parser.y:104,6'
          Dst:             array_bsearch_i
        - Src:             'var-expand-parser.y:104,6'
          Dst:             i_strcmp_p
        - Src:             'var-expand-parser.y:106,2'
          Dst:             array_append_i
        - Src:             'var-expand-parser.y:107,2'
          Dst:             array_sort_i
        - Src:             'var-expand-parser.y:107,2'
          Dst:             i_strcmp_p
    - functionName:    yydestruct
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1439
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yysyntax_error
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1290
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          398
      EdgeCount:       86
      CyclomaticComplexity: 20
      functionsReached:
        - strlen
        - yytnamerr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'var-expand-parser.c:1365,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var-expand-parser.c:1328,29'
          Dst:             yytnamerr
        - Src:             'var-expand-parser.c:1355,32'
          Dst:             yytnamerr
        - Src:             'var-expand-parser.c:1384,37'
          Dst:             strlen
        - Src:             'var-expand-parser.c:1409,18'
          Dst:             yytnamerr
    - functionName:    push_named_argument
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - link_argument
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - register_variable
        - t_str_lcase
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:176,3'
          Dst:             malloc_multiply_check
        - Src:             'var-expand-parser.y:176,3'
          Dst:             p_malloc
        - Src:             'var-expand-parser.y:179,42'
          Dst:             t_str_lcase
        - Src:             'var-expand-parser.y:179,13'
          Dst:             p_strdup
        - Src:             'var-expand-parser.y:183,20'
          Dst:             p_strdup
        - Src:             'var-expand-parser.y:185,3'
          Dst:             register_variable
        - Src:             'var-expand-parser.y:186,2'
          Dst:             link_argument
    - functionName:    str_insert
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_insert
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:72,32'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:72,2'
          Dst:             buffer_insert
    - functionName:    push_function
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          120
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - make_new_program
        - malloc_multiply_check
        - p_malloc
        - register_variable
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:227,3'
          Dst:             make_new_program
        - Src:             'var-expand-parser.y:229,3'
          Dst:             malloc_multiply_check
        - Src:             'var-expand-parser.y:229,3'
          Dst:             p_malloc
        - Src:             'var-expand-parser.y:232,3'
          Dst:             register_variable
    - functionName:    push_argument
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - link_argument
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - register_variable
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:195,3'
          Dst:             malloc_multiply_check
        - Src:             'var-expand-parser.y:195,3'
          Dst:             p_malloc
        - Src:             'var-expand-parser.y:200,20'
          Dst:             p_strdup
        - Src:             'var-expand-parser.y:202,3'
          Dst:             register_variable
        - Src:             'var-expand-parser.y:203,2'
          Dst:             link_argument
    - functionName:    create_literal
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_strconcat
        - push_argument
        - push_function
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-parser.y:267,22'
          Dst:             p_strconcat
        - Src:             'var-expand-parser.y:271,2'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:272,2'
          Dst:             push_function
    - functionName:    push_new_program
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_parse
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1450
      functionLinenumberEnd: 2119
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         181
      ICount:          1355
      EdgeCount:       228
      CyclomaticComplexity: 49
      functionsReached:
        - create_literal
        - p_strdup
        - push_argument
        - push_function
        - push_named_argument
        - push_new_program
        - str_c
        - str_insert
        - str_to_intmax
        - var_expand_parser_error
        - var_expand_parser_lex
        - yydestruct
        - yysyntax_error
      functionUses:    1
      BranchProfiles:
        - Branch String:   'var-expand-parser.c:1729,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var-expand-parser.c:1652,16'
          Dst:             var_expand_parser_lex
        - Src:             'var-expand-parser.y:296,47'
          Dst:             push_new_program
        - Src:             'var-expand-parser.y:299,43'
          Dst:             str_c
        - Src:             'var-expand-parser.y:299,21'
          Dst:             create_literal
        - Src:             'var-expand-parser.y:301,20'
          Dst:             create_literal
        - Src:             'var-expand-parser.y:318,79'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:318,205'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:318,276'
          Dst:             push_function
        - Src:             'var-expand-parser.y:319,77'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:319,184'
          Dst:             str_c
        - Src:             'var-expand-parser.y:319,207'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:319,283'
          Dst:             push_function
        - Src:             'var-expand-parser.y:322,24'
          Dst:             str_insert
        - Src:             'var-expand-parser.y:322,78'
          Dst:             str_c
        - Src:             'var-expand-parser.y:322,64'
          Dst:             str_to_intmax
        - Src:             'var-expand-parser.y:322,125'
          Dst:             var_expand_parser_error
        - Src:             'var-expand-parser.y:323,36'
          Dst:             str_c
        - Src:             'var-expand-parser.y:323,22'
          Dst:             str_to_intmax
        - Src:             'var-expand-parser.y:323,83'
          Dst:             var_expand_parser_error
        - Src:             'var-expand-parser.y:333,30'
          Dst:             push_function
        - Src:             'var-expand-parser.y:336,67'
          Dst:             str_c
        - Src:             'var-expand-parser.y:336,38'
          Dst:             p_strdup
        - Src:             'var-expand-parser.y:348,56'
          Dst:             str_c
        - Src:             'var-expand-parser.y:348,79'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:349,55'
          Dst:             str_c
        - Src:             'var-expand-parser.y:349,78'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:350,76'
          Dst:             push_argument
        - Src:             'var-expand-parser.y:351,83'
          Dst:             push_named_argument
        - Src:             'var-expand-parser.y:352,62'
          Dst:             str_c
        - Src:             'var-expand-parser.y:352,85'
          Dst:             push_named_argument
        - Src:             'var-expand-parser.y:353,63'
          Dst:             str_c
        - Src:             'var-expand-parser.y:353,86'
          Dst:             push_named_argument
        - Src:             'var-expand-parser.y:357,57'
          Dst:             str_c
        - Src:             'var-expand-parser.y:357,28'
          Dst:             p_strdup
        - Src:             'var-expand-parser.c:1940,33'
          Dst:             yysyntax_error
        - Src:             'var-expand-parser.c:1956,41'
          Dst:             yysyntax_error
        - Src:             'var-expand-parser.c:1960,9'
          Dst:             var_expand_parser_error
        - Src:             'var-expand-parser.c:1983,11'
          Dst:             yydestruct
        - Src:             'var-expand-parser.c:2037,7'
          Dst:             yydestruct
        - Src:             'var-expand-parser.c:2082,3'
          Dst:             var_expand_parser_error
        - Src:             'var-expand-parser.c:2097,7'
          Dst:             yydestruct
        - Src:             'var-expand-parser.c:2106,7'
          Dst:             yydestruct
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/lib.h:75,2'
          Dst:             i_panic
    - functionName:    input_proc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
        - var_expand_parser_get_extra
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:183,19'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:186,3'
          Dst:             i_memcpy
        - Src:             'var-expand-lexer.l:191,3'
          Dst:             i_memcpy
    - functionName:    var_expand_parser_get_extra
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2165
      functionLinenumberEnd: 2167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:130,3'
          Dst:             i_panic
    - functionName:    var_expand_parser_realloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_realloc
        - var_expand_parser_get_extra
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:158,19'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:159,9'
          Dst:             p_realloc
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/mempool.h:119,3'
          Dst:             i_panic
    - functionName:    var_expand_parser_error
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:139,18'
          Dst:             p_strdup
    - functionName:    var_expand_parser_lex_destroy
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2424
      functionLinenumberEnd: 2449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          101
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - var_expand_parser__delete_buffer
        - var_expand_parser_free
        - var_expand_parser_pop_buffer_state
        - yy_init_globals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2429,3'
          Dst:             var_expand_parser__delete_buffer
        - Src:             'var-expand-lexer.c:2431,3'
          Dst:             var_expand_parser_pop_buffer_state
        - Src:             'var-expand-lexer.c:2435,2'
          Dst:             var_expand_parser_free
        - Src:             'var-expand-lexer.c:2439,9'
          Dst:             var_expand_parser_free
        - Src:             'var-expand-lexer.c:2444,5'
          Dst:             yy_init_globals
        - Src:             'var-expand-lexer.c:2447,5'
          Dst:             var_expand_parser_free
    - functionName:    var_expand_parser__delete_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1830
      functionLinenumberEnd: 1843
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - var_expand_parser_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1840,3'
          Dst:             var_expand_parser_free
        - Src:             'var-expand-lexer.c:1842,2'
          Dst:             var_expand_parser_free
    - functionName:    var_expand_parser_pop_buffer_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 1954
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - var_expand_parser__delete_buffer
        - var_expand_parser__load_buffer_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1945,2'
          Dst:             var_expand_parser__delete_buffer
        - Src:             'var-expand-lexer.c:1951,3'
          Dst:             var_expand_parser__load_buffer_state
    - functionName:    var_expand_parser_free
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
        - var_expand_parser_get_extra
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:164,19'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:165,2'
          Dst:             p_free_internal
    - functionName:    yy_init_globals
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2390
      functionLinenumberEnd: 2419
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser__load_buffer_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1787
      functionLinenumberEnd: 1793
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          58
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_lex_init_extra
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2363
      functionLinenumberEnd: 2387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - var_expand_parser_alloc
        - var_expand_parser_set_extra
        - yy_init_globals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2366,5'
          Dst:             var_expand_parser_set_extra
        - Src:             'var-expand-lexer.c:2369,9'
          Dst:             __errno_location
        - Src:             'var-expand-lexer.c:2373,34'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:2376,9'
          Dst:             __errno_location
        - Src:             'var-expand-lexer.c:2384,5'
          Dst:             var_expand_parser_set_extra
        - Src:             'var-expand-lexer.c:2386,12'
          Dst:             yy_init_globals
    - functionName:    var_expand_parser_set_extra
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2238
      functionLinenumberEnd: 2241
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      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:    187
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_alloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_malloc
        - var_expand_parser_get_extra
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:152,19'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:153,10'
          Dst:             p_malloc
    - functionName:    var_expand_parser_lex_init
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2336
      functionLinenumberEnd: 2353
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - var_expand_parser_alloc
        - yy_init_globals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2338,9'
          Dst:             __errno_location
        - Src:             'var-expand-lexer.c:2342,34'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:2345,9'
          Dst:             __errno_location
        - Src:             'var-expand-lexer.c:2352,12'
          Dst:             yy_init_globals
    - functionName:    var_expand_parser_set_lloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2324
      functionLinenumberEnd: 2327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_lloc
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2318
      functionLinenumberEnd: 2320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_set_lval
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2312
      functionLinenumberEnd: 2315
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_lval
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2306
      functionLinenumberEnd: 2308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_set_debug
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2301
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_debug
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2292
      functionLinenumberEnd: 2294
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_set_out
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2286
      functionLinenumberEnd: 2289
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_set_in
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2280
      functionLinenumberEnd: 2283
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_set_column
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2263
      functionLinenumberEnd: 2271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - yy_fatal_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2268,12'
          Dst:             yy_fatal_error
    - functionName:    yy_fatal_error
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2136
      functionLinenumberEnd: 2139
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - fprintf
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2138,2'
          Dst:             fprintf
        - Src:             'var-expand-lexer.c:2139,2'
          Dst:             exit
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    var_expand_parser_set_lineno
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2248
      functionLinenumberEnd: 2256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - yy_fatal_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2253,12'
          Dst:             yy_fatal_error
    - functionName:    var_expand_parser_get_text
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2228
      functionLinenumberEnd: 2230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_leng
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2218
      functionLinenumberEnd: 2220
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_out
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2209
      functionLinenumberEnd: 2211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_in
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2200
      functionLinenumberEnd: 2202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_column
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2187
      functionLinenumberEnd: 2194
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser_get_lineno
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2174
      functionLinenumberEnd: 2181
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parser__scan_bytes
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2060
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - var_expand_parser__scan_buffer
        - var_expand_parser_alloc
        - yy_fatal_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2068,17'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:2070,3'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:2077,6'
          Dst:             var_expand_parser__scan_buffer
        - Src:             'var-expand-lexer.c:2079,3'
          Dst:             yy_fatal_error
    - functionName:    var_expand_parser__scan_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2010
      functionLinenumberEnd: 2036
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          114
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - var_expand_parser__switch_to_buffer
        - var_expand_parser_alloc
        - yy_fatal_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2019,24'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:2021,3'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:2033,2'
          Dst:             var_expand_parser__switch_to_buffer
    - functionName:    var_expand_parser__switch_to_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1755
      functionLinenumberEnd: 1784
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          130
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - var_expand_parser__load_buffer_state
        - var_expand_parser_ensure_buffer_stack
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1763,2'
          Dst:             var_expand_parser_ensure_buffer_stack
        - Src:             'var-expand-lexer.c:1776,2'
          Dst:             var_expand_parser__load_buffer_state
    - functionName:    var_expand_parser_ensure_buffer_stack
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1960
      functionLinenumberEnd: 2001
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          119
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - var_expand_parser_alloc
        - var_expand_parser_realloc
        - yy_fatal_error
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1971,52'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:1975,4'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:1990,52'
          Dst:             var_expand_parser_realloc
        - Src:             'var-expand-lexer.c:1995,4'
          Dst:             yy_fatal_error
    - functionName:    var_expand_parser__scan_string
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2047
      functionLinenumberEnd: 2049
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - var_expand_parser__scan_bytes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2049,37'
          Dst:             strlen
        - Src:             'var-expand-lexer.c:2049,9'
          Dst:             var_expand_parser__scan_bytes
    - functionName:    var_expand_parser_push_buffer_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1909
      functionLinenumberEnd: 1933
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          146
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - var_expand_parser__load_buffer_state
        - var_expand_parser_ensure_buffer_stack
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1914,2'
          Dst:             var_expand_parser_ensure_buffer_stack
        - Src:             'var-expand-lexer.c:1931,2'
          Dst:             var_expand_parser__load_buffer_state
    - functionName:    var_expand_parser__flush_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1900
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - var_expand_parser__load_buffer_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1899,3'
          Dst:             var_expand_parser__load_buffer_state
    - functionName:    var_expand_parser__init_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1851
      functionLinenumberEnd: 1872
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - var_expand_parser__flush_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1852,15'
          Dst:             __errno_location
        - Src:             'var-expand-lexer.c:1855,2'
          Dst:             var_expand_parser__flush_buffer
        - Src:             'var-expand-lexer.c:1871,2'
          Dst:             __errno_location
    - functionName:    var_expand_parser_restart
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1737
      functionLinenumberEnd: 1748
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - var_expand_parser__create_buffer
        - var_expand_parser__init_buffer
        - var_expand_parser__load_buffer_state
        - var_expand_parser_ensure_buffer_stack
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1741,9'
          Dst:             var_expand_parser_ensure_buffer_stack
        - Src:             'var-expand-lexer.c:1743,13'
          Dst:             var_expand_parser__create_buffer
        - Src:             'var-expand-lexer.c:1746,2'
          Dst:             var_expand_parser__init_buffer
        - Src:             'var-expand-lexer.c:1747,2'
          Dst:             var_expand_parser__load_buffer_state
    - functionName:    var_expand_parser__create_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1802
      functionLinenumberEnd: 1822
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - var_expand_parser__init_buffer
        - var_expand_parser_alloc
        - yy_fatal_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1805,24'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:1807,3'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:1814,26'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:1816,3'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:1820,2'
          Dst:             var_expand_parser__init_buffer
    - functionName:    yy_get_next_buffer
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1590
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          542
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - input_proc
        - var_expand_parser_realloc
        - var_expand_parser_restart
        - yy_fatal_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:1464,3'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:1525,6'
          Dst:             var_expand_parser_realloc
        - Src:             'var-expand-lexer.c:1533,5'
          Dst:             yy_fatal_error
        - Src:             'var-expand-lexer.c:1547,3'
          Dst:             input_proc
        - Src:             'var-expand-lexer.c:1558,4'
          Dst:             var_expand_parser_restart
        - Src:             'var-expand-lexer.c:1575,50'
          Dst:             var_expand_parser_realloc
        - Src:             'var-expand-lexer.c:1578,4'
          Dst:             yy_fatal_error
    - functionName:    yy_try_NUL_trans
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1649
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yy_get_previous_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1619
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          140
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    append_valid_utf8
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - scanner_error
        - str_append
        - uni_utf8_str_is_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:171,7'
          Dst:             uni_utf8_str_is_valid
        - Src:             'var-expand-lexer.l:172,9'
          Dst:             scanner_error
        - Src:             'var-expand-lexer.l:175,2'
          Dst:             str_append
    - functionName:    scanner_error
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.l'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - var_expand_parser_error
        - var_expand_parser_get_extra
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.l:144,19'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:146,2'
          Dst:             var_expand_parser_error
    - functionName:    yy_push_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2090
      functionLinenumberEnd: 2113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          108
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - var_expand_parser_alloc
        - var_expand_parser_realloc
        - yy_fatal_error
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2100,34'
          Dst:             var_expand_parser_alloc
        - Src:             'var-expand-lexer.c:2103,34'
          Dst:             var_expand_parser_realloc
        - Src:             'var-expand-lexer.c:2107,4'
          Dst:             yy_fatal_error
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    yy_pop_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2116
      functionLinenumberEnd: 2122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - yy_fatal_error
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'var-expand-lexer.c:2119,3'
          Dst:             yy_fatal_error
    - functionName:    var_expand_parser_lex
      functionSourceFile: '/src/dovecot/src/lib-var-expand/var-expand-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1446
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         129
      ICount:          1044
      EdgeCount:       147
      CyclomaticComplexity: 20
      functionsReached:
        - append_valid_utf8
        - scanner_error
        - str_append
        - str_append_c
        - str_new
        - str_to_uint_hex
        - str_to_uint_oct
        - var_expand_parser__create_buffer
        - var_expand_parser__load_buffer_state
        - var_expand_parser_ensure_buffer_stack
        - var_expand_parser_get_extra
        - yy_fatal_error
        - yy_get_next_buffer
        - yy_get_previous_state
        - yy_pop_state
        - yy_push_state
        - yy_try_NUL_trans
      functionUses:    1
      BranchProfiles:
        - Branch String:   'var-expand-lexer.c:1098,3'
          Branch Sides:    []
        - Branch String:   'var-expand-lexer.c:1386,8'
          Branch Sides:    []
      Callsites:
        - Src:             'var-expand-lexer.c:1042,4'
          Dst:             var_expand_parser_ensure_buffer_stack
        - Src:             'var-expand-lexer.c:1044,5'
          Dst:             var_expand_parser__create_buffer
        - Src:             'var-expand-lexer.c:1047,3'
          Dst:             var_expand_parser__load_buffer_state
        - Src:             'var-expand-lexer.l:73,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:73,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:76,9'
          Dst:             str_to_uint_hex
        - Src:             'var-expand-lexer.l:77,14'
          Dst:             scanner_error
        - Src:             'var-expand-lexer.l:79,5'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:79,30'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:83,9'
          Dst:             str_to_uint_oct
        - Src:             'var-expand-lexer.l:84,14'
          Dst:             scanner_error
        - Src:             'var-expand-lexer.l:86,5'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:86,30'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:88,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:88,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:89,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:89,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:90,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:90,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:91,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:91,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:92,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:92,28'
          Dst:             str_append_c
        - Src:             'var-expand-lexer.l:93,10'
          Dst:             scanner_error
        - Src:             'var-expand-lexer.l:97,3'
          Dst:             yy_push_state
        - Src:             'var-expand-lexer.l:98,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:99,3'
          Dst:             append_valid_utf8
        - Src:             'var-expand-lexer.l:103,3'
          Dst:             yy_push_state
        - Src:             'var-expand-lexer.l:104,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:105,3'
          Dst:             append_valid_utf8
        - Src:             'var-expand-lexer.l:109,3'
          Dst:             yy_pop_state
        - Src:             'var-expand-lexer.l:112,3'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:112,3'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:112,13'
          Dst:             append_valid_utf8
        - Src:             'var-expand-lexer.l:122,3'
          Dst:             yy_push_state
        - Src:             'var-expand-lexer.l:122,39'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:122,39'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:123,3'
          Dst:             yy_push_state
        - Src:             'var-expand-lexer.l:123,39'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:123,39'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:124,3'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:124,3'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:124,13'
          Dst:             str_append
        - Src:             'var-expand-lexer.l:127,3'
          Dst:             yy_push_state
        - Src:             'var-expand-lexer.l:128,3'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:128,3'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:128,13'
          Dst:             str_append
        - Src:             'var-expand-lexer.l:130,3'
          Dst:             var_expand_parser_get_extra
        - Src:             'var-expand-lexer.l:130,3'
          Dst:             str_new
        - Src:             'var-expand-lexer.l:130,13'
          Dst:             str_append
        - Src:             'var-expand-lexer.l:132,1'
          Dst:             scanner_error
        - Src:             'var-expand-lexer.c:1355,23'
          Dst:             yy_get_previous_state
        - Src:             'var-expand-lexer.c:1366,20'
          Dst:             yy_try_NUL_trans
        - Src:             'var-expand-lexer.c:1386,17'
          Dst:             yy_get_next_buffer
        - Src:             'var-expand-lexer.c:1421,24'
          Dst:             yy_get_previous_state
        - Src:             'var-expand-lexer.c:1431,24'
          Dst:             yy_get_previous_state
        - Src:             'var-expand-lexer.c:1441,3'
          Dst:             yy_fatal_error
    - functionName:    var_expand_parameter_from_state
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_multiply_check
        - str_c
        - str_to_intmax
        - t_malloc0
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:188,37'
          Dst:             malloc_multiply_check
        - Src:             'expansion-parameter.c:188,37'
          Dst:             t_malloc0
        - Src:             'expansion-parameter.c:192,21'
          Dst:             str_c
        - Src:             'expansion-parameter.c:192,7'
          Dst:             str_to_intmax
        - Src:             'expansion-parameter.c:196,29'
          Dst:             str_c
        - Src:             'expansion-parameter.c:196,20'
          Dst:             t_strdup
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    var_expand_parameter_string
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:176,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_parameter_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:164,10'
          Dst:             str_to_intmax
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    var_expand_parameter_dump
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
        - str_append
        - str_append_c
        - str_printfa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expansion-parameter.c:140,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-parameter.c:137,3'
          Dst:             str_printfa
        - Src:             'expansion-parameter.c:139,3'
          Dst:             str_printfa
        - Src:             'expansion-parameter.c:142,3'
          Dst:             str_printfa
        - Src:             'expansion-parameter.c:145,3'
          Dst:             str_printfa
        - Src:             'expansion-parameter.c:148,3'
          Dst:             str_append
        - Src:             'expansion-parameter.c:151,3'
          Dst:             i_unreached
        - Src:             'expansion-parameter.c:153,2'
          Dst:             str_append_c
    - functionName:    var_expand_parameter_iter_next
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:128,2'
          Dst:             i_panic
    - functionName:    var_expand_parameter_iter_more
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parameter_iter_init
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:115,3'
          Dst:             malloc_multiply_check
        - Src:             'expansion-parameter.c:115,3'
          Dst:             t_malloc0
    - functionName:    var_expand_parameter_any_or_var
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - t_strdup_printf
        - var_expand_state_lookup_variable
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:100,7'
          Dst:             var_expand_state_lookup_variable
        - Src:             'expansion-parameter.c:104,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_parameter_string_or_var
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - t_strdup_printf
        - var_expand_state_lookup_variable
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:78,7'
          Dst:             var_expand_state_lookup_variable
        - Src:             'expansion-parameter.c:82,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_parameter_bool_or_var
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - t_strdup_printf
        - var_expand_parameter_number_or_var
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:56,6'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-parameter.c:63,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_parameter_number_or_var
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - str_to_intmax
        - t_strdup_printf
        - var_expand_state_lookup_variable
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-parameter.c:34,7'
          Dst:             var_expand_state_lookup_variable
        - Src:             'expansion-parameter.c:37,12'
          Dst:             str_to_intmax
        - Src:             'expansion-parameter.c:38,15'
          Dst:             t_strdup_printf
        - Src:             'expansion-parameter.c:43,14'
          Dst:             t_strdup_printf
    - functionName:    var_expand_parameter_idx
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_parameter_key
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-parameter.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 15
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_execute_stmt
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-statement.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          217
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_strdup
        - i_strdup_printf
        - p_free_internal
        - t_pop_pass_str
        - t_push
        - t_strdup
        - t_strdup_printf
        - var_expand_find_filter
        - var_expand_state_lookup_variable
        - var_expand_state_set_transfer
        - var_expand_state_unset_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-statement.c:22,7'
          Dst:             var_expand_state_lookup_variable
        - Src:             'expansion-statement.c:26,4'
          Dst:             var_expand_state_unset_transfer
        - Src:             'expansion-statement.c:27,4'
          Dst:             p_free_internal
        - Src:             'expansion-statement.c:28,20'
          Dst:             i_strdup
        - Src:             'expansion-statement.c:30,4'
          Dst:             i_panic
        - Src:             'expansion-statement.c:31,4'
          Dst:             var_expand_state_set_transfer
        - Src:             'expansion-statement.c:36,6'
          Dst:             var_expand_find_filter
        - Src:             'expansion-statement.c:38,3'
          Dst:             t_push
        - Src:             'expansion-statement.c:40,5'
          Dst:             t_pop_pass_str
        - Src:             'expansion-statement.c:40,5'
          Dst:             i_panic
        - Src:             'expansion-statement.c:41,3'
          Dst:             p_free_internal
        - Src:             'expansion-statement.c:44,4'
          Dst:             var_expand_state_unset_transfer
        - Src:             'expansion-statement.c:46,16'
          Dst:             t_strdup
        - Src:             'expansion-statement.c:50,5'
          Dst:             i_strdup_printf
        - Src:             'expansion-statement.c:55,3'
          Dst:             p_free_internal
        - Src:             'expansion-statement.c:56,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-statement.c:60,2'
          Dst:             p_free_internal
    - functionName:    date_strftime_format
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    epoch_scale
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_unixtime
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1170
      functionLinenumberEnd: 1203
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - str_parse_intmax
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1173,6'
          Dst:             str_parse_intmax
        - Src:             'expansion-filter.c:1174,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1188,16'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1198,14'
          Dst:             t_strdup_printf
    - functionName:    fn_fill
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          211
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - str_append
        - str_insert
        - str_len
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_parameter_string_or_var
      functionUses:    2
      BranchProfiles:
        - Branch String:   'expansion-filter.c:1073,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter.c:1063,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1064,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1066,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1067,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1071,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1073,11'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1075,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:1085,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1099,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1102,9'
          Dst:             str_len
        - Src:             'expansion-filter.c:1104,4'
          Dst:             str_insert
        - Src:             'expansion-filter.c:1106,4'
          Dst:             str_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_insert
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_insert
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:72,32'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:72,2'
          Dst:             buffer_insert
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:35,27'
          Dst:             strlen
        - Src:             '../../src/lib/str.h:35,2'
          Dst:             buffer_append
    - functionName:    i_strchr_to_next
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/strfuncs.h:177,22'
          Dst:             strchr
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:277,2'
          Dst:             i_panic
        - Src:             '../../src/lib/array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fn_index_common
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          146
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_idx_i
        - i_panic
        - pool_datastack_create
        - str_c
        - str_len
        - strlen
        - strstr
        - t_strdup
        - t_strdup_until
        - var_expand_state_set_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:919,22'
          Dst:             str_c
        - Src:             'expansion-filter.c:920,20'
          Dst:             str_len
        - Src:             'expansion-filter.c:922,2'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:922,2'
          Dst:             array_create_i
        - Src:             'expansion-filter.c:924,14'
          Dst:             strstr
        - Src:             'expansion-filter.c:925,11'
          Dst:             t_strdup_until
        - Src:             'expansion-filter.c:926,3'
          Dst:             array_append_i
        - Src:             'expansion-filter.c:927,15'
          Dst:             strlen
        - Src:             'expansion-filter.c:928,3'
          Dst:             i_panic
        - Src:             'expansion-filter.c:930,10'
          Dst:             t_strdup
        - Src:             'expansion-filter.c:931,2'
          Dst:             array_append_i
        - Src:             'expansion-filter.c:934,16'
          Dst:             array_count_i
        - Src:             'expansion-filter.c:936,42'
          Dst:             array_count_i
        - Src:             'expansion-filter.c:941,10'
          Dst:             array_idx_i
        - Src:             'expansion-filter.c:943,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             '../../src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_bswap_64
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_bswap_32
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_bswap_16
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_bswap_8
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    le64_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be64_to_cpu_unaligned
        - i_bswap_64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:234,1'
          Dst:             be64_to_cpu_unaligned
        - Src:             '../../src/lib/byteorder.h:234,1'
          Dst:             i_bswap_64
    - functionName:    be64_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          55
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    le32_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be32_to_cpu_unaligned
        - i_bswap_32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:235,1'
          Dst:             be32_to_cpu_unaligned
        - Src:             '../../src/lib/byteorder.h:235,1'
          Dst:             i_bswap_32
    - functionName:    be32_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          31
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    le16_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be16_to_cpu_unaligned
        - i_bswap_16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:236,1'
          Dst:             be16_to_cpu_unaligned
        - Src:             '../../src/lib/byteorder.h:236,1'
          Dst:             i_bswap_16
    - functionName:    be16_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    le8_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be8_to_cpu_unaligned
        - i_bswap_8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/byteorder.h:237,1'
          Dst:             be8_to_cpu_unaligned
        - Src:             '../../src/lib/byteorder.h:237,1'
          Dst:             i_bswap_8
    - functionName:    be8_to_cpu_unaligned
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/byteorder.h'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fn_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          208
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - be16_to_cpu_unaligned
        - be32_to_cpu_unaligned
        - be64_to_cpu_unaligned
        - be8_to_cpu_unaligned
        - dec2str
        - le16_to_cpu_unaligned
        - le32_to_cpu_unaligned
        - le64_to_cpu_unaligned
        - le8_to_cpu_unaligned
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:860,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:860,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:861,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:869,13'
          Dst:             be8_to_cpu_unaligned
        - Src:             'expansion-filter.c:871,13'
          Dst:             le8_to_cpu_unaligned
        - Src:             'expansion-filter.c:874,13'
          Dst:             be16_to_cpu_unaligned
        - Src:             'expansion-filter.c:876,13'
          Dst:             le16_to_cpu_unaligned
        - Src:             'expansion-filter.c:879,13'
          Dst:             be32_to_cpu_unaligned
        - Src:             'expansion-filter.c:881,13'
          Dst:             le32_to_cpu_unaligned
        - Src:             'expansion-filter.c:884,13'
          Dst:             be64_to_cpu_unaligned
        - Src:             'expansion-filter.c:886,13'
          Dst:             le64_to_cpu_unaligned
        - Src:             'expansion-filter.c:888,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:893,39'
          Dst:             dec2str
        - Src:             'expansion-filter.c:893,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fix_replacement_pattern
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __ctype_b_loc
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - strchr
        - strlen
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:773,29'
          Dst:             strlen
        - Src:             'expansion-filter.c:773,19'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:775,15'
          Dst:             strchr
        - Src:             'expansion-filter.c:776,3'
          Dst:             str_append_data
        - Src:             'expansion-filter.c:777,7'
          Dst:             __ctype_b_loc
        - Src:             'expansion-filter.c:778,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:779,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:782,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:785,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:791,2'
          Dst:             str_append
        - Src:             'expansion-filter.c:793,9'
          Dst:             str_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:39,2'
          Dst:             buffer_append
    - 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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_delete
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:77,2'
          Dst:             buffer_delete
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/str.h:90,6'
          Dst:             str_len
        - Src:             '../../src/lib/str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    fn_hash_algo
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          330
      EdgeCount:       66
      CyclomaticComplexity: 16
      functionsReached:
        - buffer_append
        - buffer_create_dynamic
        - buffer_set_used_size
        - hash_method_lookup
        - i_panic
        - pool_datastack_create
        - strcmp
        - strlen
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer_binary
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:256,11'
          Dst:             hash_method_lookup
        - Src:             'expansion-filter.c:258,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:267,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:268,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:270,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:271,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:274,28'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:276,8'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:279,3'
          Dst:             i_panic
        - Src:             'expansion-filter.c:280,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:281,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:284,14'
          Dst:             strcmp
        - Src:             'expansion-filter.c:285,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:289,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:292,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:294,20'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:294,20'
          Dst:             buffer_create_dynamic
        - Src:             'expansion-filter.c:295,2'
          Dst:             buffer_append
        - Src:             'expansion-filter.c:303,28'
          Dst:             strlen
        - Src:             'expansion-filter.c:306,3'
          Dst:             buffer_set_used_size
        - Src:             'expansion-filter.c:307,3'
          Dst:             buffer_append
        - Src:             'expansion-filter.c:310,2'
          Dst:             var_expand_state_set_transfer_binary
    - functionName:    fn_iso8601
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          208
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - gmtime_r
        - i_panic
        - iso8601_date_create_tm
        - localtime_r
        - null_strcmp
        - parse_unixtime
        - str_c
        - strcmp
        - t_strdup_printf
        - utc_offset
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1414,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1415,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1417,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1418,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1419,7'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:1420,23'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1421,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1425,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1430,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1434,21'
          Dst:             str_c
        - Src:             'expansion-filter.c:1434,6'
          Dst:             parse_unixtime
        - Src:             'expansion-filter.c:1440,6'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1441,7'
          Dst:             localtime_r
        - Src:             'expansion-filter.c:1442,4'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1443,17'
          Dst:             utc_offset
        - Src:             'expansion-filter.c:1444,13'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1444,39'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1445,7'
          Dst:             gmtime_r
        - Src:             'expansion-filter.c:1446,4'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1450,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1456,11'
          Dst:             iso8601_date_create_tm
        - Src:             'expansion-filter.c:1455,2'
          Dst:             var_expand_state_set_transfer
    - 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:    fn_date
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1351
      functionLinenumberEnd: 1406
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          262
      EdgeCount:       73
      CyclomaticComplexity: 18
      functionsReached:
        - date_strftime_format
        - gmtime_r
        - i_panic
        - localtime_r
        - null_strcmp
        - parse_unixtime
        - str_c
        - strcmp
        - t_strdup_printf
        - t_strftime
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1356,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1357,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1359,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1360,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1361,7'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:1362,23'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1363,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1366,14'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:1367,23'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1368,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1372,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1382,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1386,21'
          Dst:             str_c
        - Src:             'expansion-filter.c:1386,6'
          Dst:             parse_unixtime
        - Src:             'expansion-filter.c:1391,6'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1392,7'
          Dst:             localtime_r
        - Src:             'expansion-filter.c:1393,4'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1394,13'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1394,39'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1395,7'
          Dst:             gmtime_r
        - Src:             'expansion-filter.c:1396,4'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1398,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1404,22'
          Dst:             date_strftime_format
        - Src:             'expansion-filter.c:1404,11'
          Dst:             t_strftime
        - Src:             'expansion-filter.c:1403,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_from_epoch
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1282
      functionLinenumberEnd: 1334
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          241
      EdgeCount:       59
      CyclomaticComplexity: 15
      functionsReached:
        - null_strcmp
        - str_c
        - str_to_intmax
        - strcmp
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1286,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1287,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1289,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1290,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1291,7'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:1292,23'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1293,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1297,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1302,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1305,20'
          Dst:             str_c
        - Src:             'expansion-filter.c:1305,6'
          Dst:             str_to_intmax
        - Src:             'expansion-filter.c:1307,9'
          Dst:             str_c
        - Src:             'expansion-filter.c:1306,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1312,6'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1314,11'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1316,11'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1318,11'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1321,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1332,3'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1331,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_epoch
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1276
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          230
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - epoch_scale
        - null_strcmp
        - parse_unixtime
        - str_c
        - strcmp
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1225,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1226,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1228,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1229,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1230,7'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:1231,23'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1232,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1236,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1241,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1245,21'
          Dst:             str_c
        - Src:             'expansion-filter.c:1245,6'
          Dst:             parse_unixtime
        - Src:             'expansion-filter.c:1249,6'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1252,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1255,14'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1258,14'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1262,15'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1266,8'
          Dst:             epoch_scale
        - Src:             'expansion-filter.c:1269,5'
          Dst:             str_c
        - Src:             'expansion-filter.c:1267,15'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1274,39'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1274,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_safe
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1162
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fn_escape
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - str_c
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1138,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1138,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1139,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1147,3'
          Dst:             str_c
        - Src:             'expansion-filter.c:1148,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_text
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - str_sanitize_append_utf8
        - t_str_new
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1127,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1127,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1128,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1129,21'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:1130,35'
          Dst:             str_c
        - Src:             'expansion-filter.c:1130,2'
          Dst:             str_sanitize_append_utf8
        - Src:             'expansion-filter.c:1131,39'
          Dst:             str_c
        - Src:             'expansion-filter.c:1131,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_rfill
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_fill
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1115,9'
          Dst:             fn_fill
    - functionName:    fn_lfill
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1121
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_fill
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1121,9'
          Dst:             fn_fill
    - functionName:    fn_list
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          123
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - str_c
        - t_strarray_join
        - t_strdup_printf
        - t_strsplit_tabescaped
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1030,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:1031,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:1033,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:1034,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1036,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1037,7'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:1039,7'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:1044,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1047,52'
          Dst:             str_c
        - Src:             'expansion-filter.c:1047,30'
          Dst:             t_strsplit_tabescaped
        - Src:             'expansion-filter.c:1049,39'
          Dst:             t_strarray_join
        - Src:             'expansion-filter.c:1049,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_domain
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1022
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          89
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_strchr_to_next
        - str_c
        - t_strdup
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1014,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1014,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1015,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1019,22'
          Dst:             str_c
        - Src:             'expansion-filter.c:1020,48'
          Dst:             i_strchr_to_next
        - Src:             'expansion-filter.c:1020,39'
          Dst:             t_strdup
        - Src:             'expansion-filter.c:1020,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_username
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          81
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - fn_index_common
        - t_strdup_printf
        - var_expand_parameter_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1005,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:1005,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1006,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:1008,9'
          Dst:             fn_index_common
    - functionName:    fn_index
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          195
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - fn_index_common
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_parameter_string_or_var
      functionUses:    0
      BranchProfiles:
        - Branch String:   'expansion-filter.c:965,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter.c:957,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:958,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:960,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:961,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:964,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:965,11'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:967,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:972,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:997,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:999,9'
          Dst:             fn_index_common
    - functionName:    fn_be_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_number
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:900,9'
          Dst:             fn_number
    - functionName:    fn_le_number
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_number
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:906,9'
          Dst:             fn_number
    - functionName:    fn_regexp
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          214
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - fix_replacement_pattern
        - str_c
        - strchr
        - strlen
        - t_str_new
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:
        - Branch String:   'expansion-filter.c:817,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter.c:806,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:807,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:809,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:810,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:812,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:814,7'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:817,11'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:839,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:841,34'
          Dst:             str_c
        - Src:             'expansion-filter.c:842,29'
          Dst:             strlen
        - Src:             'expansion-filter.c:842,19'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:844,6'
          Dst:             strchr
        - Src:             'expansion-filter.c:846,9'
          Dst:             fix_replacement_pattern
        - Src:             'expansion-filter.c:852,3'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_ldap_dn
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - str_append
        - str_append_c
        - str_c
        - t_str_new
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:752,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:752,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:753,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:755,18'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:756,20'
          Dst:             str_c
        - Src:             'expansion-filter.c:760,4'
          Dst:             str_append
        - Src:             'expansion-filter.c:762,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:766,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_substr
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          400
      EdgeCount:       91
      CyclomaticComplexity: 24
      functionsReached:
        - p_memdup
        - pool_datastack_create
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:671,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:672,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:675,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:676,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:678,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:679,7'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:682,7'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:685,14'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:697,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:710,3'
          Dst:             var_expand_state_set_transfer_data
        - Src:             'expansion-filter.c:739,3'
          Dst:             var_expand_state_set_transfer_data
        - Src:             'expansion-filter.c:742,13'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:742,4'
          Dst:             p_memdup
        - Src:             'expansion-filter.c:744,3'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_truncate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          257
      EdgeCount:       65
      CyclomaticComplexity: 17
      functionsReached:
        - buffer_append_buf
        - buffer_create_dynamic
        - buffer_set_used_size
        - buffer_truncate_rshift_bits
        - null_strcmp
        - pool_datastack_create
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:610,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:611,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:613,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:614,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:615,7'
          Dst:             null_strcmp
        - Src:             'expansion-filter.c:617,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:626,14'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:628,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:637,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:647,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:649,24'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:649,24'
          Dst:             buffer_create_dynamic
        - Src:             'expansion-filter.c:650,2'
          Dst:             buffer_append_buf
        - Src:             'expansion-filter.c:653,3'
          Dst:             buffer_truncate_rshift_bits
        - Src:             'expansion-filter.c:655,3'
          Dst:             buffer_set_used_size
        - Src:             'expansion-filter.c:657,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_reverse
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          140
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append_c
        - buffer_create_dynamic
        - pool_datastack_create
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:589,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:589,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:590,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:592,24'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:592,24'
          Dst:             buffer_create_dynamic
        - Src:             'expansion-filter.c:595,3'
          Dst:             buffer_append_c
        - Src:             'expansion-filter.c:596,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_default
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          122
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - t_strdup_printf
        - var_expand_parameter_any_or_var
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:87,18'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:88,3'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:89,11'
          Dst:             var_expand_parameter_any_or_var
        - Src:             'expansion-filter.c:95,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_unhexlify
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          133
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_create_dynamic
        - hex_to_binary
        - pool_datastack_create
        - str_c
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer_binary
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:568,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:568,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:569,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:576,19'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter.c:576,19'
          Dst:             buffer_create_dynamic
        - Src:             'expansion-filter.c:577,20'
          Dst:             str_c
        - Src:             'expansion-filter.c:577,6'
          Dst:             hex_to_binary
        - Src:             'expansion-filter.c:578,3'
          Dst:             var_expand_state_set_transfer_binary
    - functionName:    fn_hexlify
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          202
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - binary_to_hex
        - str_append
        - str_append_c
        - str_c
        - strlen
        - t_str_new
        - t_strdup_printf
        - t_strndup
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:527,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:529,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:530,7'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:539,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:542,3'
          Dst:             binary_to_hex
        - Src:             'expansion-filter.c:543,16'
          Dst:             strlen
        - Src:             'expansion-filter.c:552,19'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:553,12'
          Dst:             strlen
        - Src:             'expansion-filter.c:555,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:556,3'
          Dst:             str_append
        - Src:             'expansion-filter.c:557,12'
          Dst:             str_c
        - Src:             'expansion-filter.c:559,12'
          Dst:             t_strndup
        - Src:             'expansion-filter.c:560,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_unhex
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          98
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - dec2str
        - str_c
        - str_to_uintmax_hex
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:505,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:505,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:506,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:510,25'
          Dst:             str_c
        - Src:             'expansion-filter.c:510,6'
          Dst:             str_to_uintmax_hex
        - Src:             'expansion-filter.c:515,39'
          Dst:             dec2str
        - Src:             'expansion-filter.c:515,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_hex
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          222
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - str_append_c
        - str_c
        - str_delete
        - str_insert
        - str_len
        - str_printfa
        - str_to_uintmax
        - str_truncate
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:460,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:461,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:463,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:464,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:466,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:467,7'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:469,7'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:473,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:475,21'
          Dst:             str_c
        - Src:             'expansion-filter.c:475,6'
          Dst:             str_to_uintmax
        - Src:             'expansion-filter.c:480,2'
          Dst:             str_truncate
        - Src:             'expansion-filter.c:481,2'
          Dst:             str_printfa
        - Src:             'expansion-filter.c:490,10'
          Dst:             str_len
        - Src:             'expansion-filter.c:491,4'
          Dst:             str_append_c
        - Src:             'expansion-filter.c:492,3'
          Dst:             str_truncate
        - Src:             'expansion-filter.c:494,10'
          Dst:             str_len
        - Src:             'expansion-filter.c:495,4'
          Dst:             str_insert
        - Src:             'expansion-filter.c:496,34'
          Dst:             str_len
        - Src:             'expansion-filter.c:496,3'
          Dst:             str_delete
    - functionName:    fn_unbase64
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          208
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - strcmp
        - t_base64_scheme_decode
        - t_strdup_printf
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number_or_var
        - var_expand_state_set_transfer_binary
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:408,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:409,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:411,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:412,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:416,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:417,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:428,14'
          Dst:             strcmp
        - Src:             'expansion-filter.c:429,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:441,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:444,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:447,3'
          Dst:             t_base64_scheme_decode
        - Src:             'expansion-filter.c:449,2'
          Dst:             var_expand_state_set_transfer_binary
    - functionName:    fn_base64
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          176
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - str_c
        - strcmp
        - t_base64_scheme_encode
        - t_strdup_printf
        - var_expand_parameter_bool_or_var
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:369,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:370,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:372,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:373,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:377,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:378,8'
          Dst:             var_expand_parameter_bool_or_var
        - Src:             'expansion-filter.c:383,14'
          Dst:             strcmp
        - Src:             'expansion-filter.c:384,8'
          Dst:             var_expand_parameter_bool_or_var
        - Src:             'expansion-filter.c:390,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:393,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:396,3'
          Dst:             t_base64_scheme_encode
        - Src:             'expansion-filter.c:398,39'
          Dst:             str_c
        - Src:             'expansion-filter.c:398,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_sha512
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_hash_algo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:360,9'
          Dst:             fn_hash_algo
    - functionName:    fn_sha384
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_hash_algo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:354,9'
          Dst:             fn_hash_algo
    - functionName:    fn_sha256
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_hash_algo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:348,9'
          Dst:             fn_hash_algo
    - functionName:    fn_sha1
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_hash_algo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:342,9'
          Dst:             fn_hash_algo
    - functionName:    fn_md5
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fn_hash_algo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:336,9'
          Dst:             fn_hash_algo
    - functionName:    fn_hash
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - fn_hash_algo
        - var_expand_parameter_idx
        - var_expand_parameter_string_or_var
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:323,6'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:326,13'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:329,9'
          Dst:             fn_hash_algo
    - functionName:    fn_lower
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - str_c_modifiable
        - str_lcase
        - t_strdup_printf
        - var_expand_parameter_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:57,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:57,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:58,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:60,16'
          Dst:             str_c_modifiable
        - Src:             'expansion-filter.c:61,2'
          Dst:             str_lcase
    - functionName:    fn_upper
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - str_c_modifiable
        - str_ucase
        - t_strdup_printf
        - var_expand_parameter_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:68,2'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:68,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:69,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:71,16'
          Dst:             str_c_modifiable
        - Src:             'expansion-filter.c:72,2'
          Dst:             str_ucase
    - functionName:    fn_concat
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          132
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - str_append
        - str_append_data
        - t_str_new
        - t_strdup_printf
        - var_expand_parameter_any_or_var
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_state_set_transfer_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:225,21'
          Dst:             t_str_new
        - Src:             'expansion-filter.c:229,3'
          Dst:             str_append_data
        - Src:             'expansion-filter.c:232,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:234,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:236,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:238,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:240,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:241,7'
          Dst:             var_expand_parameter_any_or_var
        - Src:             'expansion-filter.c:243,3'
          Dst:             str_append
        - Src:             'expansion-filter.c:246,2'
          Dst:             var_expand_state_set_transfer_data
    - functionName:    fn_calculate
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          362
      EdgeCount:       70
      CyclomaticComplexity: 13
      functionsReached:
        - dec2str
        - i_unreached
        - str_c
        - str_printfa
        - str_to_intmax
        - t_strdup_printf
        - var_expand_parameter_idx
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_number
        - var_expand_parameter_number_or_var
        - var_expand_state_set_transfer
        - var_expand_state_unset_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'expansion-filter.c:136,3'
          Branch Sides:    []
        - Branch String:   'expansion-filter.c:183,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter.c:123,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter.c:129,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter.c:131,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter.c:132,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:134,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:136,11'
          Dst:             var_expand_parameter_idx
        - Src:             'expansion-filter.c:138,8'
          Dst:             var_expand_parameter_number
        - Src:             'expansion-filter.c:145,8'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter.c:154,2'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:173,40'
          Dst:             dec2str
        - Src:             'expansion-filter.c:173,3'
          Dst:             var_expand_state_set_transfer
        - Src:             'expansion-filter.c:178,20'
          Dst:             str_c
        - Src:             'expansion-filter.c:178,6'
          Dst:             str_to_intmax
        - Src:             'expansion-filter.c:209,3'
          Dst:             i_unreached
        - Src:             'expansion-filter.c:214,2'
          Dst:             var_expand_state_unset_transfer
        - Src:             'expansion-filter.c:215,2'
          Dst:             str_printfa
    - functionName:    fn_literal
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - t_strdup_printf
        - var_expand_parameter_any_or_var
        - var_expand_parameter_key
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:107,20'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:109,3'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:111,6'
          Dst:             var_expand_parameter_any_or_var
        - Src:             'expansion-filter.c:113,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    fn_lookup
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - t_strdup_printf
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_lookup_variable
        - var_expand_state_set_transfer
        - var_expand_state_unset_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:36,20'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter.c:38,3'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter.c:40,2'
          Dst:             var_expand_state_unset_transfer
        - Src:             'expansion-filter.c:43,6'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter.c:46,6'
          Dst:             var_expand_state_lookup_variable
        - Src:             'expansion-filter.c:47,3'
          Dst:             var_expand_state_set_transfer
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:160,2'
          Dst:             buffer_free
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:246,2'
          Dst:             buffer_delete
    - functionName:    var_expand_unregister_filter
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1546
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - array_is_created_i
        - i_panic
        - i_unreached
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1536,2'
          Dst:             array_is_created_i
        - Src:             'expansion-filter.c:1536,2'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1541,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1542,4'
          Dst:             array_delete_i
        - Src:             'expansion-filter.c:1546,2'
          Dst:             i_unreached
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_expand_find_filter
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1550
      functionLinenumberEnd: 1570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - array_is_created_i
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1552,7'
          Dst:             strcmp
        - Src:             'expansion-filter.c:1558,6'
          Dst:             array_is_created_i
        - Src:             'expansion-filter.c:1562,8'
          Dst:             strcmp
    - functionName:    var_expand_is_filter
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1529
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - var_expand_find_filter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1531,9'
          Dst:             var_expand_find_filter
    - functionName:    var_expand_free_filters
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1508
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1509,2'
          Dst:             array_free_i
    - functionName:    var_expand_register_filter
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1526
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - lib_atexit
        - var_expand_free_filters
        - var_expand_is_filter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter.c:1514,7'
          Dst:             array_is_created_i
        - Src:             'expansion-filter.c:1515,3'
          Dst:             array_create_i
        - Src:             'expansion-filter.c:1516,3'
          Dst:             lib_atexit
        - Src:             'expansion-filter.c:1516,3'
          Dst:             var_expand_free_filters
        - Src:             'expansion-filter.c:1518,19'
          Dst:             var_expand_is_filter
        - Src:             'expansion-filter.c:1519,2'
          Dst:             i_panic
        - Src:             'expansion-filter.c:1525,2'
          Dst:             array_append_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib-var-expand/../../src/lib/array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../src/lib/array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             '../../src/lib/array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             '../../src/lib/array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    expansion_filter_switch
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-if.c'
      linkageType:     externalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          436
      EdgeCount:       97
      CyclomaticComplexity: 22
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - fn_if_cmp
        - i_panic
        - pool_datastack_create
        - t_strdup_printf
        - var_expand_if_str_to_comp
        - var_expand_parameter_any_or_var
        - var_expand_parameter_from_state
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
        - var_expand_state_unset_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'expansion-filter-if.c:298,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter-if.c:287,2'
          Dst:             pool_datastack_create
        - Src:             'expansion-filter-if.c:287,2'
          Dst:             array_create_i
        - Src:             'expansion-filter-if.c:290,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter-if.c:291,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter-if.c:293,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter-if.c:294,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter-if.c:297,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:304,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter-if.c:305,16'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:315,11'
          Dst:             array_append_space_i
        - Src:             'expansion-filter-if.c:326,32'
          Dst:             array_is_created_i
        - Src:             'expansion-filter-if.c:330,30'
          Dst:             array_append_space_i
        - Src:             'expansion-filter-if.c:334,3'
          Dst:             array_append_space_i
        - Src:             'expansion-filter-if.c:340,29'
          Dst:             var_expand_if_str_to_comp
        - Src:             'expansion-filter-if.c:343,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:348,7'
          Dst:             var_expand_parameter_from_state
        - Src:             'expansion-filter-if.c:358,2'
          Dst:             i_panic
        - Src:             'expansion-filter-if.c:365,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'expansion-filter-if.c:371,13'
          Dst:             fn_if_cmp
        - Src:             'expansion-filter-if.c:386,3'
          Dst:             var_expand_state_unset_transfer
        - Src:             'expansion-filter-if.c:388,13'
          Dst:             var_expand_parameter_any_or_var
        - Src:             'expansion-filter-if.c:389,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:393,3'
          Dst:             var_expand_state_set_transfer
    - functionName:    var_expand_if_str_to_comp
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-if.c:56,3'
          Dst:             i_panic
        - Src:             'expansion-filter-if.c:57,7'
          Dst:             strcmp
    - functionName:    fn_if_cmp
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-if.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          347
      EdgeCount:       41
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - strcmp
        - t_strdup_printf
        - var_expand_parameter_number_or_var
        - var_expand_parameter_string_or_var
        - wildcard_match
      functionUses:    2
      BranchProfiles:
        - Branch String:   'expansion-filter-if.c:78,3'
          Branch Sides:    []
        - Branch String:   'expansion-filter-if.c:113,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter-if.c:71,7'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter-if.c:72,15'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:74,14'
          Dst:             var_expand_parameter_number_or_var
        - Src:             'expansion-filter-if.c:75,15'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:98,4'
          Dst:             i_panic
        - Src:             'expansion-filter-if.c:103,6'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter-if.c:104,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:106,13'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter-if.c:107,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:115,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:118,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:121,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:124,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:127,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:130,15'
          Dst:             strcmp
        - Src:             'expansion-filter-if.c:133,15'
          Dst:             wildcard_match
        - Src:             'expansion-filter-if.c:136,16'
          Dst:             wildcard_match
        - Src:             'expansion-filter-if.c:156,3'
          Dst:             i_panic
    - functionName:    expansion_filter_if
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-if.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          296
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - fn_if_cmp
        - i_panic
        - t_strdup_printf
        - var_expand_if_str_to_comp
        - var_expand_parameter_any_or_var
        - var_expand_parameter_from_state
        - var_expand_parameter_iter_init
        - var_expand_parameter_iter_more
        - var_expand_parameter_iter_next
        - var_expand_parameter_key
        - var_expand_parameter_string_or_var
        - var_expand_state_set_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'expansion-filter-if.c:195,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expansion-filter-if.c:187,3'
          Dst:             var_expand_parameter_iter_init
        - Src:             'expansion-filter-if.c:188,9'
          Dst:             var_expand_parameter_iter_more
        - Src:             'expansion-filter-if.c:190,4'
          Dst:             var_expand_parameter_iter_next
        - Src:             'expansion-filter-if.c:191,21'
          Dst:             var_expand_parameter_key
        - Src:             'expansion-filter-if.c:193,4'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:198,8'
          Dst:             var_expand_parameter_string_or_var
        - Src:             'expansion-filter-if.c:199,16'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:216,29'
          Dst:             var_expand_if_str_to_comp
        - Src:             'expansion-filter-if.c:219,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:224,7'
          Dst:             var_expand_parameter_from_state
        - Src:             'expansion-filter-if.c:235,2'
          Dst:             i_panic
        - Src:             'expansion-filter-if.c:238,6'
          Dst:             fn_if_cmp
        - Src:             'expansion-filter-if.c:243,6'
          Dst:             var_expand_parameter_any_or_var
        - Src:             'expansion-filter-if.c:244,14'
          Dst:             t_strdup_printf
        - Src:             'expansion-filter-if.c:250,2'
          Dst:             var_expand_state_set_transfer
    - functionName:    expansion_filter_decrypt
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-crypt.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - var_expand_crypt_load
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-crypt.c:57,3'
          Dst:             var_expand_crypt_load
    - functionName:    var_expand_crypt_load
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-crypt.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lib_atexit
        - module_dir_init
        - module_dir_load
        - var_expand_crypt_unload
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-crypt.c:30,3'
          Dst:             module_dir_load
        - Src:             'expansion-filter-crypt.c:31,2'
          Dst:             module_dir_init
        - Src:             'expansion-filter-crypt.c:32,2'
          Dst:             lib_atexit
        - Src:             'expansion-filter-crypt.c:32,2'
          Dst:             var_expand_crypt_unload
    - functionName:    var_expand_crypt_unload
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-crypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_dir_unload
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-crypt.c:16,2'
          Dst:             module_dir_unload
    - functionName:    expansion_filter_encrypt
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-crypt.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - var_expand_crypt_load
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-crypt.c:48,3'
          Dst:             var_expand_crypt_load
    - functionName:    expansion_filter_crypt_set_functions
      functionSourceFile: '/src/dovecot/src/lib-var-expand/expansion-filter-crypt.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expansion-filter-crypt.c:38,2'
          Dst:             i_panic
    - functionName:    fuzzer_t_strndup_replace_zero
      functionSourceFile: '/src/dovecot/src/lib-test/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - t_malloc_no0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzer.c:98,14'
          Dst:             t_malloc_no0
    - functionName:    pump_finished
      functionSourceFile: '/src/dovecot/src/lib-test/fuzzer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - i_error
        - i_fatal
        - i_stream_get_error
        - i_stream_get_name
        - iostream_pump_destroy
        - iostream_pump_get_input
        - iostream_pump_get_output
        - o_stream_get_error
        - o_stream_get_fd
        - o_stream_get_name
        - shutdown
      functionUses:    1
      BranchProfiles:
        - Branch String:   'fuzzer.c:50,2'
          Branch Sides:    []
      Callsites:
        - Src:             'fuzzer.c:47,26'
          Dst:             iostream_pump_get_input
        - Src:             'fuzzer.c:48,27'
          Dst:             iostream_pump_get_output
        - Src:             'fuzzer.c:54,34'
          Dst:             i_stream_get_name
        - Src:             'fuzzer.c:55,4'
          Dst:             i_stream_get_error
        - Src:             'fuzzer.c:54,3'
          Dst:             i_error
        - Src:             'fuzzer.c:58,35'
          Dst:             o_stream_get_name
        - Src:             'fuzzer.c:59,4'
          Dst:             o_stream_get_error
        - Src:             'fuzzer.c:58,3'
          Dst:             i_error
        - Src:             'fuzzer.c:63,15'
          Dst:             o_stream_get_fd
        - Src:             'fuzzer.c:63,6'
          Dst:             shutdown
        - Src:             'fuzzer.c:64,3'
          Dst:             i_fatal
        - Src:             'fuzzer.c:65,2'
          Dst:             iostream_pump_destroy
    - 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:    fuzzer_io_as_fd
      functionSourceFile: '/src/dovecot/src/lib-test/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          82
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - i_stream_create_from_data
        - i_stream_set_name
        - i_stream_unref
        - iostream_pump_create
        - iostream_pump_set_completion_callback
        - iostream_pump_start
        - net_set_nonblock
        - o_stream_create_fd
        - o_stream_set_name
        - o_stream_set_no_error_handling
        - o_stream_unref
        - pump_finished
        - socketpair
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzer.c:73,6'
          Dst:             socketpair
        - Src:             'fuzzer.c:74,3'
          Dst:             i_fatal
        - Src:             'fuzzer.c:75,2'
          Dst:             net_set_nonblock
        - Src:             'fuzzer.c:76,2'
          Dst:             net_set_nonblock
        - Src:             'fuzzer.c:78,26'
          Dst:             i_stream_create_from_data
        - Src:             'fuzzer.c:79,27'
          Dst:             o_stream_create_fd
        - Src:             'fuzzer.c:80,2'
          Dst:             i_stream_set_name
        - Src:             'fuzzer.c:81,2'
          Dst:             o_stream_set_name
        - Src:             'fuzzer.c:82,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'fuzzer.c:84,19'
          Dst:             iostream_pump_create
        - Src:             'fuzzer.c:87,2'
          Dst:             iostream_pump_set_completion_callback
        - Src:             'fuzzer.c:87,2'
          Dst:             pump_finished
        - Src:             'fuzzer.c:89,2'
          Dst:             i_stream_unref
        - Src:             'fuzzer.c:90,2'
          Dst:             o_stream_unref
        - Src:             'fuzzer.c:91,2'
          Dst:             iostream_pump_start
    - functionName:    socketpair
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzzer_deinit
      functionSourceFile: '/src/dovecot/src/lib-test/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - io_loop_destroy
        - iostream_pump_destroy
        - lib_deinit
        - lib_signals_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzer.c:29,2'
          Dst:             iostream_pump_destroy
        - Src:             'fuzzer.c:33,9'
          Dst:             close
        - Src:             'fuzzer.c:35,9'
          Dst:             close
        - Src:             'fuzzer.c:37,3'
          Dst:             io_loop_destroy
        - Src:             'fuzzer.c:39,3'
          Dst:             lib_signals_deinit
        - Src:             'fuzzer.c:40,3'
          Dst:             lib_deinit
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzzer_init
      functionSourceFile: '/src/dovecot/src/lib-test/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lib_init
        - lib_is_initialized
        - lib_signals_ignore
        - lib_signals_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzer.c:17,7'
          Dst:             lib_is_initialized
        - Src:             'fuzzer.c:18,3'
          Dst:             lib_init
        - Src:             'fuzzer.c:19,3'
          Dst:             lib_signals_init
        - Src:             'fuzzer.c:20,3'
          Dst:             lib_signals_ignore
    - functionName:    array_lsearch_ptr_idx_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:187,2'
          Dst:             i_panic
        - Src:             'array.c:189,26'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_lsearch_ptr_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:173,2'
          Dst:             i_panic
        - Src:             'array.c:175,26'
          Dst:             array_count_i
    - functionName:    array_lsearch_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:162,22'
          Dst:             array_count_i
    - functionName:    array_bsearch_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - bsearch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:150,10'
          Dst:             array_count_i
        - Src:             'array.c:151,9'
          Dst:             bsearch
    - functionName:    bsearch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_sort_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - buffer_get_modifiable_data
        - qsort
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:138,10'
          Dst:             array_count_i
        - Src:             'array.c:141,8'
          Dst:             buffer_get_modifiable_data
        - Src:             'array.c:141,2'
          Dst:             qsort
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_reverse_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          100
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - buffer_get_modifiable_data
        - i_memcpy
        - t_buffer_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:118,26'
          Dst:             array_count_i
        - Src:             'array.c:122,9'
          Dst:             buffer_get_modifiable_data
        - Src:             'array.c:123,8'
          Dst:             t_buffer_get
        - Src:             'array.c:125,3'
          Dst:             i_memcpy
        - Src:             'array.c:126,3'
          Dst:             i_memcpy
        - Src:             'array.c:129,3'
          Dst:             i_memcpy
    - functionName:    array_equal_fn_ctx_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          174
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:94,7'
          Dst:             array_is_created_i
        - Src:             'array.c:95,11'
          Dst:             array_is_created_i
        - Src:             'array.c:97,7'
          Dst:             array_is_created_i
        - Src:             'array.c:100,11'
          Dst:             array_count_i
        - Src:             'array.c:100,43'
          Dst:             array_count_i
        - Src:             'array.c:105,2'
          Dst:             i_panic
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_equal_fn_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          171
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - array_count_i
        - array_is_created_i
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:66,7'
          Dst:             array_is_created_i
        - Src:             'array.c:67,11'
          Dst:             array_is_created_i
        - Src:             'array.c:69,7'
          Dst:             array_is_created_i
        - Src:             'array.c:72,11'
          Dst:             array_count_i
        - Src:             'array.c:72,43'
          Dst:             array_count_i
        - Src:             'array.c:77,2'
          Dst:             i_panic
    - functionName:    array_cmp_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - buffer_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:51,7'
          Dst:             array_is_created_i
        - Src:             'array.c:52,11'
          Dst:             array_is_created_i
        - Src:             'array.c:54,7'
          Dst:             array_is_created_i
        - Src:             'array.c:57,9'
          Dst:             buffer_cmp
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    array_insert_space_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
        - buffer_get_space_unsafe
        - malloc_add_check
        - malloc_multiply_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:40,8'
          Dst:             malloc_multiply_check
        - Src:             'array.c:41,29'
          Dst:             malloc_add_check
        - Src:             'array.c:41,2'
          Dst:             buffer_copy
        - Src:             'array.c:44,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_idx_clear_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_write_zero
        - malloc_multiply_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:31,6'
          Dst:             malloc_multiply_check
        - Src:             'array.c:30,2'
          Dst:             buffer_write_zero
    - functionName:    array_idx_set_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_write
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:24,30'
          Dst:             malloc_multiply_check
        - Src:             'array.c:24,2'
          Dst:             buffer_write
    - functionName:    array_idx_get_space_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_space_unsafe
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:18,12'
          Dst:             malloc_multiply_check
        - Src:             'array.c:17,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    array_idx_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib/array.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'array.c:10,2'
          Dst:             i_panic
        - Src:             'array.c:11,9'
          Dst:             malloc_multiply_check
    - functionName:    base64_encode_init
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_base64_scheme_decode
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_decode
        - buffer_create_dynamic
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'base64.c:861,8'
          Dst:             pool_datastack_create
        - Src:             'base64.c:861,8'
          Dst:             buffer_create_dynamic
        - Src:             'base64.c:862,8'
          Dst:             base64_scheme_decode
    - functionName:    base64_scheme_decode
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 852
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - base64_decode_finish
        - base64_decode_init
        - base64_decode_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'base64.c:847,2'
          Dst:             base64_decode_init
        - Src:             'base64.c:848,8'
          Dst:             base64_decode_more
        - Src:             'base64.c:850,9'
          Dst:             base64_decode_finish
    - functionName:    base64_decode_init
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_decode_more
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          833
      EdgeCount:       158
      CyclomaticComplexity: 33
      functionsReached:
        - base64_skip_whitespace
        - buffer_append_c
        - buffer_get_avail_size
        - i_panic
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'base64.c:685,3'
          Branch Sides:    []
        - Branch String:   'base64.c:735,4'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:617,2'
          Dst:             i_panic
        - Src:             'base64.c:618,2'
          Dst:             i_panic
        - Src:             'base64.c:631,3'
          Dst:             base64_skip_whitespace
        - Src:             'base64.c:656,14'
          Dst:             buffer_get_avail_size
        - Src:             'base64.c:658,3'
          Dst:             i_panic
        - Src:             'base64.c:680,4'
          Dst:             i_panic
        - Src:             'base64.c:692,4'
          Dst:             buffer_append_c
        - Src:             'base64.c:699,4'
          Dst:             buffer_append_c
        - Src:             'base64.c:706,4'
          Dst:             buffer_append_c
        - Src:             'base64.c:712,4'
          Dst:             i_unreached
        - Src:             'base64.c:718,3'
          Dst:             base64_skip_whitespace
        - Src:             'base64.c:728,3'
          Dst:             i_panic
        - Src:             'base64.c:732,4'
          Dst:             i_panic
        - Src:             'base64.c:755,5'
          Dst:             base64_skip_whitespace
        - Src:             'base64.c:773,5'
          Dst:             base64_skip_whitespace
    - functionName:    base64_decode_finish
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'base64.c:806,2'
          Dst:             i_panic
        - Src:             'base64.c:814,3'
          Dst:             i_panic
    - functionName:    base64_skip_whitespace
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib/./base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode_finish
        - base64_encode_init
        - base64_encode_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './base64.h:216,2'
          Dst:             base64_encode_init
        - Src:             './base64.h:217,2'
          Dst:             base64_encode_more
        - Src:             './base64.h:218,2'
          Dst:             base64_encode_finish
    - functionName:    base64_encode_more
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          481
      EdgeCount:       92
      CyclomaticComplexity: 14
      functionsReached:
        - base64_encode_more_data
        - buffer_append
        - buffer_append_c
        - buffer_get_avail_size
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'base64.c:384,2'
          Dst:             i_panic
        - Src:             'base64.c:385,2'
          Dst:             i_panic
        - Src:             'base64.c:393,15'
          Dst:             buffer_get_avail_size
        - Src:             'base64.c:399,4'
          Dst:             i_panic
        - Src:             'base64.c:400,4'
          Dst:             buffer_append_c
        - Src:             'base64.c:407,3'
          Dst:             i_panic
        - Src:             'base64.c:408,3'
          Dst:             i_panic
        - Src:             'base64.c:414,4'
          Dst:             base64_encode_more_data
        - Src:             'base64.c:416,4'
          Dst:             i_panic
        - Src:             'base64.c:419,4'
          Dst:             i_panic
        - Src:             'base64.c:422,4'
          Dst:             i_panic
        - Src:             'base64.c:423,4'
          Dst:             i_panic
        - Src:             'base64.c:424,4'
          Dst:             i_panic
        - Src:             'base64.c:437,6'
          Dst:             buffer_append
        - Src:             'base64.c:440,6'
          Dst:             buffer_append_c
        - Src:             'base64.c:445,5'
          Dst:             buffer_append_c
        - Src:             'base64.c:451,2'
          Dst:             i_panic
    - functionName:    base64_encode_finish
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         112
      ICount:          817
      EdgeCount:       134
      CyclomaticComplexity: 24
      functionsReached:
        - buffer_append_space_unsafe
        - buffer_get_avail_size
        - i_memcpy
        - i_panic
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'base64.c:485,2'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:468,2'
          Dst:             i_panic
        - Src:             'base64.c:473,15'
          Dst:             buffer_get_avail_size
        - Src:             'base64.c:478,3'
          Dst:             i_panic
        - Src:             'base64.c:481,2'
          Dst:             i_panic
        - Src:             'base64.c:482,2'
          Dst:             i_panic
        - Src:             'base64.c:489,3'
          Dst:             i_panic
        - Src:             'base64.c:499,3'
          Dst:             i_panic
        - Src:             'base64.c:508,3'
          Dst:             i_unreached
        - Src:             'base64.c:529,2'
          Dst:             i_panic
        - Src:             'base64.c:533,8'
          Dst:             buffer_append_space_unsafe
        - Src:             'base64.c:544,3'
          Dst:             i_memcpy
        - Src:             'base64.c:565,3'
          Dst:             i_memcpy
        - Src:             'base64.c:569,3'
          Dst:             i_panic
        - Src:             'base64.c:571,2'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    base64_encode_more_data
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          903
      EdgeCount:       97
      CyclomaticComplexity: 12
      functionsReached:
        - base64_encode_get_out_size
        - buffer_append_space_unsafe
        - i_memcpy
        - i_panic
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'base64.c:266,2'
          Branch Sides:    []
        - Branch String:   'base64.c:322,2'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:228,2'
          Dst:             i_panic
        - Src:             'base64.c:237,13'
          Dst:             base64_encode_get_out_size
        - Src:             'base64.c:241,10'
          Dst:             buffer_append_space_unsafe
        - Src:             'base64.c:246,2'
          Dst:             i_panic
        - Src:             'base64.c:248,3'
          Dst:             i_memcpy
        - Src:             'base64.c:253,3'
          Dst:             i_memcpy
        - Src:             'base64.c:261,2'
          Dst:             i_panic
        - Src:             'base64.c:262,2'
          Dst:             i_panic
        - Src:             'base64.c:270,3'
          Dst:             i_panic
        - Src:             'base64.c:298,3'
          Dst:             i_unreached
        - Src:             'base64.c:304,3'
          Dst:             i_panic
        - Src:             'base64.c:358,2'
          Dst:             i_panic
        - Src:             'base64.c:360,2'
          Dst:             i_panic
        - Src:             'base64.c:362,3'
          Dst:             i_memcpy
        - Src:             'base64.c:367,3'
          Dst:             i_memcpy
        - Src:             'base64.c:372,2'
          Dst:             i_panic
    - functionName:    base64_encode_get_out_size
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          144
      EdgeCount:       25
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_unreached
      functionUses:    2
      BranchProfiles:
        - Branch String:   'base64.c:66,2'
          Branch Sides:    []
        - Branch String:   'base64.c:89,2'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:60,2'
          Dst:             i_panic
        - Src:             'base64.c:80,3'
          Dst:             i_unreached
    - functionName:    t_base64_scheme_encode
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_scheme_encode
        - buffer_create_dynamic
        - pool_datastack_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'base64.c:834,15'
          Dst:             pool_datastack_create
        - Src:             'base64.c:834,15'
          Dst:             buffer_create_dynamic
        - Src:             'base64.c:835,9'
          Dst:             base64_scheme_encode
    - functionName:    base64_encode_get_full_space
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          284
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_unreached
      functionUses:    0
      BranchProfiles:
        - Branch String:   'base64.c:179,2'
          Branch Sides:    []
        - Branch String:   'base64.c:201,3'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:150,2'
          Dst:             i_panic
        - Src:             'base64.c:157,3'
          Dst:             i_panic
        - Src:             'base64.c:193,3'
          Dst:             i_unreached
    - functionName:    base64_encode_get_size
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          162
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - base64_encode_get_out_size
        - i_panic
        - i_unreached
      functionUses:    0
      BranchProfiles:
        - Branch String:   'base64.c:109,3'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:105,20'
          Dst:             base64_encode_get_out_size
        - Src:             'base64.c:119,4'
          Dst:             i_unreached
        - Src:             'base64.c:127,3'
          Dst:             i_panic
    - functionName:    base64_get_full_encoded_size
      functionSourceFile: '/src/dovecot/src/lib/base64.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          191
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:
        - Branch String:   'base64.c:25,3'
          Branch Sides:    []
      Callsites:
        - Src:             'base64.c:29,4'
          Dst:             i_panic
        - Src:             'base64.c:33,4'
          Dst:             i_panic
        - Src:             'base64.c:41,3'
          Dst:             i_panic
    - functionName:    pool_get_name
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_truncate_rshift_bits
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          145
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - buffer_get_modifiable_data
        - buffer_set_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:543,3'
          Dst:             buffer_set_used_size
        - Src:             'buffer.c:544,24'
          Dst:             buffer_get_modifiable_data
        - Src:             'buffer.c:553,3'
          Dst:             buffer_set_used_size
    - functionName:    buffer_set_used_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:459,2'
          Dst:             i_panic
    - functionName:    buffer_get_modifiable_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:451,2'
          Dst:             i_panic
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:130,3'
          Dst:             i_panic
    - functionName:    buffer_verify_pool
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - p_realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:525,9'
          Dst:             p_realloc
        - Src:             'buffer.c:527,3'
          Dst:             i_panic
    - functionName:    buffer_cmp
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:513,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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_get_avail_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:502,2'
          Dst:             i_panic
    - functionName:    buffer_get_writable_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_get_size
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_clear
      functionSourceFile: '/src/dovecot/src/lib/./buffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_set_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './buffer.h:150,2'
          Dst:             buffer_set_used_size
    - functionName:    buffer_clear_safe
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_clear
        - safe_memset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:473,3'
          Dst:             safe_memset
        - Src:             'buffer.c:474,2'
          Dst:             buffer_clear
    - functionName:    buffer_append_space_unsafe
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_space_unsafe
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:441,9'
          Dst:             buffer_get_space_unsafe
    - functionName:    buffer_get_space_unsafe
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_check_limits
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:433,2'
          Dst:             buffer_check_limits
    - functionName:    buffer_check_limits
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          335
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - buffer_alloc
        - i_panic
        - pool_get_exp_grown_size
        - pool_get_name
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:61,3'
          Dst:             i_panic
        - Src:             'buffer.c:81,5'
          Dst:             pool_get_name
        - Src:             'buffer.c:78,4'
          Dst:             i_panic
        - Src:             'buffer.c:85,4'
          Dst:             pool_get_exp_grown_size
        - Src:             'buffer.c:92,3'
          Dst:             buffer_alloc
        - Src:             'buffer.c:113,2'
          Dst:             i_panic
        - Src:             'buffer.c:114,2'
          Dst:             i_panic
    - functionName:    buffer_alloc
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          152
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - p_malloc
        - p_realloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:37,2'
          Dst:             i_panic
        - Src:             'buffer.c:42,2'
          Dst:             i_panic
        - Src:             'buffer.c:45,19'
          Dst:             p_malloc
        - Src:             'buffer.c:47,19'
          Dst:             p_realloc
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    buffer_append_buf
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:426,2'
          Dst:             buffer_copy
    - functionName:    buffer_copy
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          142
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_check_limits
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:405,2'
          Dst:             i_panic
        - Src:             'buffer.c:411,2'
          Dst:             buffer_check_limits
        - Src:             'buffer.c:412,2'
          Dst:             i_panic
    - functionName:    buffer_nul_terminate
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:390,2'
          Dst:             i_panic
    - functionName:    buffer_insert_zero
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_copy
        - buffer_write_zero
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:378,3'
          Dst:             buffer_write_zero
        - Src:             'buffer.c:380,3'
          Dst:             buffer_copy
    - functionName:    buffer_write_zero
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_check_limits
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:360,2'
          Dst:             buffer_check_limits
    - functionName:    buffer_append_zero
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_check_limits
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:370,2'
          Dst:             buffer_check_limits
    - functionName:    buffer_replace
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          125
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_copy
        - buffer_set_used_size
        - buffer_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:329,3'
          Dst:             buffer_write
        - Src:             'buffer.c:342,4'
          Dst:             buffer_copy
        - Src:             'buffer.c:349,3'
          Dst:             buffer_write
        - Src:             'buffer.c:352,2'
          Dst:             buffer_set_used_size
    - functionName:    buffer_write
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_check_limits
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:244,2'
          Dst:             buffer_check_limits
    - functionName:    buffer_delete
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_set_used_size
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:319,2'
          Dst:             buffer_set_used_size
    - functionName:    buffer_insert_array
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_insert
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:297,32'
          Dst:             malloc_multiply_check
        - Src:             'buffer.c:297,2'
          Dst:             buffer_insert
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    buffer_insert
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_copy
        - buffer_write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:287,3'
          Dst:             buffer_write
        - Src:             'buffer.c:289,3'
          Dst:             buffer_copy
    - functionName:    buffer_append_c
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_check_append_limits
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:277,2'
          Dst:             buffer_check_append_limits
    - functionName:    buffer_check_append_limits
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_check_limits
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:132,2'
          Dst:             i_panic
        - Src:             'buffer.c:134,3'
          Dst:             buffer_check_limits
    - functionName:    buffer_append_array
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - malloc_multiply_check
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:269,27'
          Dst:             malloc_multiply_check
        - Src:             'buffer.c:269,2'
          Dst:             buffer_append
    - functionName:    buffer_append
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_check_append_limits
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:261,3'
          Dst:             buffer_check_append_limits
    - functionName:    buffer_write_array
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_write
        - malloc_multiply_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:252,31'
          Dst:             malloc_multiply_check
        - Src:             'buffer.c:252,2'
          Dst:             buffer_write
    - functionName:    buffer_get_pool
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_free_without_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:227,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    buffer_free
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - p_free_internal
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:214,3'
          Dst:             p_free_internal
        - Src:             'buffer.c:216,3'
          Dst:             p_free_internal
    - functionName:    buffer_create_dynamic_max
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_alloc
        - malloc_multiply_check
        - p_malloc
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:195,8'
          Dst:             malloc_multiply_check
        - Src:             'buffer.c:195,8'
          Dst:             p_malloc
        - Src:             'buffer.c:202,2'
          Dst:             buffer_alloc
    - functionName:    buffer_create_dynamic
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic_max
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:178,9'
          Dst:             buffer_create_dynamic_max
    - functionName:    buffer_create_from_const_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'buffer.c:173,2'
          Dst:             i_panic
    - functionName:    buffer_create_from_data
      functionSourceFile: '/src/dovecot/src/lib/buffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_count_get
      functionSourceFile: '/src/dovecot/src/lib/cpu-count.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - __sched_cpucount
        - sched_getaffinity
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cpu-count.c:22,6'
          Dst:             sched_getaffinity
        - Src:             'cpu-count.c:23,14'
          Dst:             t_strdup_printf
        - Src:             'cpu-count.c:26,11'
          Dst:             __sched_cpucount
    - functionName:    sched_getaffinity
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __sched_cpucount
      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:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    data_stack_send_grow_event
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - backtrace_get
        - data_stack_get_alloc_size
        - data_stack_get_used_size
        - e_debug
        - event_add_int
        - event_add_str
        - event_create
        - event_send_abort
        - event_set_name
        - event_want_level
        - str_c
        - str_printfa
        - t_str_new
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:414,21'
          Dst:             event_create
        - Src:             'data-stack.c:415,2'
          Dst:             event_set_name
        - Src:             'data-stack.c:416,47'
          Dst:             data_stack_get_alloc_size
        - Src:             'data-stack.c:416,2'
          Dst:             event_add_int
        - Src:             'data-stack.c:417,46'
          Dst:             data_stack_get_used_size
        - Src:             'data-stack.c:417,2'
          Dst:             event_add_int
        - Src:             'data-stack.c:418,2'
          Dst:             event_add_int
        - Src:             'data-stack.c:419,2'
          Dst:             event_add_int
        - Src:             'data-stack.c:426,2'
          Dst:             event_add_str
        - Src:             'data-stack.c:432,7'
          Dst:             event_want_level
        - Src:             'data-stack.c:439,6'
          Dst:             backtrace_get
        - Src:             'data-stack.c:440,3'
          Dst:             event_add_str
        - Src:             'data-stack.c:442,15'
          Dst:             t_strdup_printf
        - Src:             'data-stack.c:443,3'
          Dst:             event_add_str
        - Src:             'data-stack.c:446,18'
          Dst:             t_str_new
        - Src:             'data-stack.c:448,7'
          Dst:             data_stack_get_used_size
        - Src:             'data-stack.c:449,7'
          Dst:             data_stack_get_alloc_size
        - Src:             'data-stack.c:447,2'
          Dst:             str_printfa
        - Src:             'data-stack.c:455,2'
          Dst:             event_want_level
        - Src:             'data-stack.c:455,2'
          Dst:             str_c
        - Src:             'data-stack.c:455,2'
          Dst:             e_debug
        - Src:             'data-stack.c:455,2'
          Dst:             event_send_abort
    - functionName:    data_stack_get_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:713,2'
          Dst:             i_panic
    - functionName:    data_stack_get_used_size
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:725,2'
          Dst:             i_panic
    - functionName:    mem_block_reset
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    data_stack_deinit
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - data_stack_free_unused
        - i_panic
        - t_pop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:776,7'
          Dst:             t_pop
        - Src:             'data-stack.c:778,3'
          Dst:             i_panic
        - Src:             'data-stack.c:782,2'
          Dst:             data_stack_free_unused
    - functionName:    t_pop
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_pop_last_unsafe
      functionUses:    42
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:328,2'
          Dst:             t_pop_last_unsafe
    - functionName:    data_stack_free_unused
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:734,18'
          Dst:             __errno_location
        - Src:             'data-stack.c:737,2'
          Dst:             __errno_location
    - functionName:    t_pop_last_unsafe
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - data_stack_last_buffer_reset
        - free_blocks
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:286,3'
          Dst:             i_panic
        - Src:             'data-stack.c:288,2'
          Dst:             data_stack_last_buffer_reset
        - Src:             'data-stack.c:299,4'
          Dst:             free_blocks
    - functionName:    data_stack_last_buffer_reset
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          19
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_blocks
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          76
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:217,18'
          Dst:             __errno_location
        - Src:             'data-stack.c:241,2'
          Dst:             __errno_location
    - functionName:    data_stack_deinit_event
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:770,2'
          Dst:             event_unref
    - functionName:    mem_block_alloc
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - abort
        - i_panic
        - malloc_add_check
        - mem_block_reset
        - nearest_power
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:372,18'
          Dst:             __errno_location
        - Src:             'data-stack.c:377,17'
          Dst:             malloc_add_check
        - Src:             'data-stack.c:377,3'
          Dst:             nearest_power
        - Src:             'data-stack.c:381,17'
          Dst:             malloc_add_check
        - Src:             'data-stack.c:385,5'
          Dst:             abort
        - Src:             'data-stack.c:389,3'
          Dst:             i_panic
        - Src:             'data-stack.c:392,2'
          Dst:             __errno_location
        - Src:             'data-stack.c:395,2'
          Dst:             mem_block_reset
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_buffer_alloc_last_full
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_malloc_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:663,9'
          Dst:             t_malloc_real
    - functionName:    t_malloc_real
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          205
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - data_stack_after_last_alloc
        - data_stack_init
        - data_stack_last_buffer_reset
        - data_stack_send_grow_event
        - i_panic
        - mem_block_alloc
        - mem_block_reset
        - t_pop
        - t_push
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:464,18'
          Dst:             __errno_location
        - Src:             'data-stack.c:467,3'
          Dst:             i_panic
        - Src:             'data-stack.c:471,3'
          Dst:             data_stack_init
        - Src:             'data-stack.c:484,2'
          Dst:             data_stack_last_buffer_reset
        - Src:             'data-stack.c:498,4'
          Dst:             mem_block_reset
        - Src:             'data-stack.c:501,12'
          Dst:             mem_block_alloc
        - Src:             'data-stack.c:514,8'
          Dst:             data_stack_after_last_alloc
        - Src:             'data-stack.c:523,12'
          Dst:             t_push
        - Src:             'data-stack.c:526,3'
          Dst:             data_stack_send_grow_event
        - Src:             'data-stack.c:527,4'
          Dst:             t_pop
        - Src:             'data-stack.c:527,4'
          Dst:             i_panic
        - Src:             'data-stack.c:536,2'
          Dst:             __errno_location
    - functionName:    data_stack_init
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mem_block_alloc
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:756,18'
          Dst:             mem_block_alloc
        - Src:             'data-stack.c:762,18'
          Dst:             t_push
    - functionName:    data_stack_after_last_alloc
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_push
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - data_stack_init
        - i_panic
        - t_buffer_alloc
        - t_buffer_get
        - t_push
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:153,2'
          Dst:             i_panic
        - Src:             'data-stack.c:157,3'
          Dst:             data_stack_init
        - Src:             'data-stack.c:158,10'
          Dst:             t_push
        - Src:             'data-stack.c:162,10'
          Dst:             t_buffer_get
        - Src:             'data-stack.c:176,2'
          Dst:             t_buffer_alloc
    - functionName:    t_buffer_get
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_malloc_real
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:627,8'
          Dst:             t_malloc_real
    - functionName:    t_buffer_alloc
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_malloc_real
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:652,2'
          Dst:             i_panic
        - Src:             'data-stack.c:653,2'
          Dst:             i_panic
        - Src:             'data-stack.c:654,2'
          Dst:             i_panic
        - Src:             'data-stack.c:657,8'
          Dst:             t_malloc_real
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    t_buffer_reget
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - t_buffer_get
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:643,15'
          Dst:             t_buffer_get
        - Src:             'data-stack.c:645,3'
          Dst:             i_memcpy
    - functionName:    t_get_bytes_available
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:619,2'
          Dst:             i_panic
    - functionName:    t_try_realloc
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - data_stack_after_last_alloc
        - data_stack_last_buffer_reset
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:561,3'
          Dst:             i_panic
        - Src:             'data-stack.c:563,2'
          Dst:             data_stack_last_buffer_reset
        - Src:             'data-stack.c:568,21'
          Dst:             data_stack_after_last_alloc
    - functionName:    t_malloc0
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_malloc_real
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:549,8'
          Dst:             t_malloc_real
    - functionName:    t_malloc_no0
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_malloc_real
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:542,9'
          Dst:             t_malloc_real
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    data_stack_frame_contains
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          179
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:684,2'
          Dst:             i_panic
        - Src:             'data-stack.c:686,2'
          Dst:             i_panic
    - functionName:    t_pop_pass_str
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - data_stack_frame_contains
        - i_strdup
        - p_free_internal
        - t_pop
        - t_strdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:345,22'
          Dst:             data_stack_frame_contains
        - Src:             'data-stack.c:346,10'
          Dst:             t_pop
        - Src:             'data-stack.c:351,18'
          Dst:             i_strdup
        - Src:             'data-stack.c:352,13'
          Dst:             t_pop
        - Src:             'data-stack.c:353,9'
          Dst:             t_strdup
        - Src:             'data-stack.c:354,2'
          Dst:             p_free_internal
    - functionName:    t_push_named
      functionSourceFile: '/src/dovecot/src/lib/data-stack.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data-stack.c:189,27'
          Dst:             t_push
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    str_append_str
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:61,2'
          Dst:             buffer_append
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_insert
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_insert
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:72,32'
          Dst:             strlen
        - Src:             './str.h:72,2'
          Dst:             buffer_insert
    - functionName:    event_get_log_message_str_out
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - str_append
        - str_append_str
        - str_vprintfa
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:148,3'
          Dst:             str_append
        - Src:             'event-log.c:149,2'
          Dst:             str_append_str
        - Src:             'event-log.c:153,3'
          Dst:             str_append
        - Src:             'event-log.c:159,3'
          Dst:             str_vprintfa
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    event_get_log_message
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          407
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - event_get_log_message
        - event_get_log_message_str_out
        - str_append
        - str_c
        - str_insert
        - str_len
        - str_truncate
        - str_vprintfa
        - strlen
        - t_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:180,3'
          Dst:             event_get_log_message_str_out
        - Src:             'event-log.c:183,4'
          Dst:             str_insert
        - Src:             'event-log.c:197,4'
          Dst:             str_vprintfa
        - Src:             'event-log.c:198,17'
          Dst:             str_c
        - Src:             'event-log.c:199,14'
          Dst:             str_len
        - Src:             'event-log.c:202,4'
          Dst:             str_append
        - Src:             'event-log.c:203,17'
          Dst:             str_c
        - Src:             'event-log.c:210,26'
          Dst:             str_c
        - Src:             'event-log.c:214,31'
          Dst:             str_c
        - Src:             'event-log.c:214,22'
          Dst:             t_strdup
        - Src:             'event-log.c:219,3'
          Dst:             str_truncate
        - Src:             'event-log.c:230,44'
          Dst:             strlen
        - Src:             'event-log.c:231,3'
          Dst:             event_get_log_message_str_out
        - Src:             'event-log.c:235,4'
          Dst:             str_insert
        - Src:             'event-log.c:242,3'
          Dst:             event_get_log_message_str_out
        - Src:             'event-log.c:246,4'
          Dst:             str_insert
        - Src:             'event-log.c:253,7'
          Dst:             event_get_log_message
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    event_log_deinit
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - event_filter_unref
        - i_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:491,2'
          Dst:             i_memcpy
        - Src:             'event-log.c:492,3'
          Dst:             event_filter_unref
        - Src:             'event-log.c:493,2'
          Dst:             array_free_i
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    event_log_init
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:485,2'
          Dst:             array_create_i
    - functionName:    event_get_global_core_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_unset_global_core_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:479,2'
          Dst:             event_filter_unref
    - functionName:    event_set_global_core_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_ref
        - event_unset_global_core_log_filter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:466,2'
          Dst:             event_unset_global_core_log_filter
        - Src:             'event-log.c:468,2'
          Dst:             event_filter_ref
    - functionName:    event_global_debug_send_filter_updated
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    event_global_debug_send_filter_register
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_space_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:456,9'
          Dst:             array_append_space_i
    - functionName:    event_get_global_debug_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_unset_global_debug_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:450,2'
          Dst:             event_filter_unref
    - functionName:    event_set_global_debug_log_filter
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_ref
        - event_unset_global_debug_log_filter
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:437,2'
          Dst:             event_unset_global_debug_log_filter
        - Src:             'event-log.c:439,2'
          Dst:             event_filter_ref
    - functionName:    event_set_forced_never_debug
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_unset_forced_debug
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_recalculate_debug_level
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:425,2'
          Dst:             event_recalculate_debug_level
    - functionName:    event_recalculate_debug_level
      functionSourceFile: '/src/dovecot/src/lib/./lib-event-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_set_forced_debug
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_recalculate_debug_level
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:418,2'
          Dst:             event_recalculate_debug_level
    - functionName:    event_logv_params
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          245
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - abort
        - event_filter_match_source
        - event_get_log_message
        - event_send
        - event_vsend
        - i_panic
        - str_append
        - str_c
        - str_vprintfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:346,2'
          Dst:             i_panic
        - Src:             'event-log.c:349,6'
          Dst:             event_filter_match_source
        - Src:             'event-log.c:356,22'
          Dst:             t_str_new
        - Src:             'event-log.c:357,7'
          Dst:             event_get_log_message
        - Src:             'event-log.c:363,4'
          Dst:             str_vprintfa
        - Src:             'event-log.c:367,4'
          Dst:             event_vsend
        - Src:             'event-log.c:372,20'
          Dst:             str_c
        - Src:             'event-log.c:375,4'
          Dst:             event_send
        - Src:             'event-log.c:377,4'
          Dst:             event_vsend
        - Src:             'event-log.c:381,4'
          Dst:             str_append
        - Src:             'event-log.c:383,4'
          Dst:             str_vprintfa
        - Src:             'event-log.c:384,33'
          Dst:             str_c
        - Src:             'event-log.c:384,3'
          Dst:             event_send
        - Src:             'event-log.c:387,3'
          Dst:             abort
    - functionName:    event_want_log_level
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          169
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - event_filter_match_source
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:298,6'
          Dst:             event_filter_match_source
        - Src:             'event-log.c:303,6'
          Dst:             event_filter_match_source
    - functionName:    event_log
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_logv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:266,2'
          Dst:             event_logv
    - functionName:    event_logv
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - event_logv_params
        - event_ref
        - event_set_source
        - event_unref
        - event_want_log_level
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:395,18'
          Dst:             __errno_location
        - Src:             'event-log.c:398,3'
          Dst:             event_set_source
        - Src:             'event-log.c:402,8'
          Dst:             event_want_log_level
        - Src:             'event-log.c:406,2'
          Dst:             event_ref
        - Src:             'event-log.c:407,2'
          Dst:             event_logv_params
        - Src:             'event-log.c:408,2'
          Dst:             event_set_source
        - Src:             'event-log.c:410,2'
          Dst:             event_unref
        - Src:             'event-log.c:411,2'
          Dst:             __errno_location
    - functionName:    e_log
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - event_logv
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:116,2'
          Dst:             t_push
        - Src:             'event-log.c:117,3'
          Dst:             event_logv
        - Src:             'event-log.c:118,4'
          Dst:             t_pop
        - Src:             'event-log.c:118,4'
          Dst:             i_panic
    - functionName:    e_debug
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - event_logv
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:97,2'
          Dst:             t_push
        - Src:             'event-log.c:98,3'
          Dst:             event_logv
        - Src:             'event-log.c:99,4'
          Dst:             t_pop
        - Src:             'event-log.c:99,4'
          Dst:             i_panic
    - functionName:    e_info
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_logv
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:66,7'
          Dst:             event_want_level
        - Src:             'event-log.c:67,3'
          Dst:             event_send_abort
        - Src:             'event-log.c:78,2'
          Dst:             t_push
        - Src:             'event-log.c:79,3'
          Dst:             event_logv
        - Src:             'event-log.c:80,4'
          Dst:             t_pop
        - Src:             'event-log.c:80,4'
          Dst:             i_panic
    - functionName:    event_want_level
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - event_filter_match_source
        - event_want_log_level
        - i_memcpy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:318,6'
          Dst:             event_want_log_level
        - Src:             'event-log.c:323,2'
          Dst:             i_memcpy
        - Src:             'event-log.c:327,7'
          Dst:             event_filter_match_source
    - functionName:    e_warning
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_logv
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:43,7'
          Dst:             event_want_level
        - Src:             'event-log.c:44,3'
          Dst:             event_send_abort
        - Src:             'event-log.c:55,2'
          Dst:             t_push
        - Src:             'event-log.c:56,3'
          Dst:             event_logv
        - Src:             'event-log.c:57,4'
          Dst:             t_pop
        - Src:             'event-log.c:57,4'
          Dst:             i_panic
    - functionName:    e_error
      functionSourceFile: '/src/dovecot/src/lib/event-log.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_logv
        - event_send_abort
        - event_want_level
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-log.c:20,7'
          Dst:             event_want_level
        - Src:             'event-log.c:21,3'
          Dst:             event_send_abort
        - Src:             'event-log.c:32,2'
          Dst:             t_push
        - Src:             'event-log.c:33,3'
          Dst:             event_logv
        - Src:             'event-log.c:34,4'
          Dst:             t_pop
        - Src:             'event-log.c:34,4'
          Dst:             i_panic
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    internal_send_split
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          148
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - log_fd_write
        - str_append_c
        - str_append_data
        - str_append_max
        - str_c
        - str_data
        - str_len
        - str_truncate
        - strchr
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:792,8'
          Dst:             t_str_new
        - Src:             'failures.c:793,23'
          Dst:             str_data
        - Src:             'failures.c:793,2'
          Dst:             str_append_data
        - Src:             'failures.c:801,15'
          Dst:             str_len
        - Src:             'failures.c:802,3'
          Dst:             str_truncate
        - Src:             'failures.c:803,22'
          Dst:             str_c
        - Src:             'failures.c:804,20'
          Dst:             strchr
        - Src:             'failures.c:807,4'
          Dst:             str_append_max
        - Src:             'failures.c:808,4'
          Dst:             str_append_c
        - Src:             'failures.c:813,4'
          Dst:             str_append_data
        - Src:             'failures.c:816,6'
          Dst:             str_data
        - Src:             'failures.c:816,21'
          Dst:             str_len
        - Src:             'failures.c:815,7'
          Dst:             log_fd_write
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    log_fd_write
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          170
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fd_wait_writable
        - process_title_get
        - process_title_set
        - t_strdup
        - t_strdup_printf
        - write
      functionUses:    5
      BranchProfiles:
        - Branch String:   'failures.c:394,3'
          Branch Sides:    []
      Callsites:
        - Src:             'failures.c:381,16'
          Dst:             write
        - Src:             'failures.c:390,4'
          Dst:             __errno_location
        - Src:             'failures.c:394,11'
          Dst:             __errno_location
        - Src:             'failures.c:410,26'
          Dst:             process_title_get
        - Src:             'failures.c:410,17'
          Dst:             t_strdup
        - Src:             'failures.c:414,14'
          Dst:             t_strdup_printf
        - Src:             'failures.c:416,5'
          Dst:             process_title_set
        - Src:             'failures.c:418,4'
          Dst:             fd_wait_writable
        - Src:             'failures.c:441,3'
          Dst:             process_title_set
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fd_wait_writable
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - abort
        - poll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:365,6'
          Dst:             poll
        - Src:             'failures.c:365,31'
          Dst:             __errno_location
        - Src:             'failures.c:368,3'
          Dst:             abort
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_failure_send_option_forced
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_fd_write
        - strlen
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:735,8'
          Dst:             t_strdup_printf
        - Src:             'failures.c:738,8'
          Dst:             strlen
        - Src:             'failures.c:737,9'
          Dst:             log_fd_write
    - functionName:    internal_write
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          176
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - i_failure_send_option_forced
        - internal_send_split
        - log_fd_write
        - log_prefix_sanitize
        - str_append
        - str_append_c
        - str_c
        - str_data
        - str_len
        - str_printfa
        - str_vprintfa
        - strchr
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:204,7'
          Dst:             i_failure_send_option_forced
        - Src:             'failures.c:213,9'
          Dst:             t_str_new
        - Src:             'failures.c:214,2'
          Dst:             str_printfa
        - Src:             'failures.c:216,3'
          Dst:             str_printfa
        - Src:             'failures.c:218,20'
          Dst:             log_prefix_sanitize
        - Src:             'failures.c:218,3'
          Dst:             str_append
        - Src:             'failures.c:219,22'
          Dst:             str_len
        - Src:             'failures.c:221,2'
          Dst:             str_vprintfa
        - Src:             'failures.c:223,6'
          Dst:             str_len
        - Src:             'failures.c:223,44'
          Dst:             str_c
        - Src:             'failures.c:223,37'
          Dst:             strchr
        - Src:             'failures.c:225,3'
          Dst:             str_append_c
        - Src:             'failures.c:227,9'
          Dst:             str_data
        - Src:             'failures.c:227,25'
          Dst:             str_len
        - Src:             'failures.c:226,10'
          Dst:             log_fd_write
        - Src:             'failures.c:229,9'
          Dst:             internal_send_split
    - functionName:    log_prefix_sanitize
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_str_replace
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:77,9'
          Dst:             t_str_replace
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    syslog_write
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          184
      EdgeCount:       33
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_unreached
        - log_prefix_add
        - log_prefix_sanitize
        - str_append
        - str_c
        - str_c_modifiable
        - str_delete
        - str_len
        - str_vprintfa
        - strchr
        - syslog
        - t_str_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'failures.c:152,2'
          Branch Sides:    []
      Callsites:
        - Src:             'failures.c:139,19'
          Dst:             t_str_new
        - Src:             'failures.c:142,21'
          Dst:             log_prefix_sanitize
        - Src:             'failures.c:142,4'
          Dst:             str_append
        - Src:             'failures.c:144,4'
          Dst:             str_append
        - Src:             'failures.c:146,3'
          Dst:             log_prefix_add
        - Src:             'failures.c:148,22'
          Dst:             str_len
        - Src:             'failures.c:149,2'
          Dst:             str_vprintfa
        - Src:             'failures.c:171,3'
          Dst:             i_unreached
        - Src:             'failures.c:174,21'
          Dst:             str_c_modifiable
        - Src:             'failures.c:174,14'
          Dst:             strchr
        - Src:             'failures.c:175,25'
          Dst:             str_c_modifiable
        - Src:             'failures.c:177,23'
          Dst:             str_c
        - Src:             'failures.c:177,3'
          Dst:             syslog
        - Src:             'failures.c:179,3'
          Dst:             i_panic
        - Src:             'failures.c:180,3'
          Dst:             str_delete
        - Src:             'failures.c:183,22'
          Dst:             str_c
        - Src:             'failures.c:183,2'
          Dst:             syslog
    - functionName:    log_prefix_add
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          123
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - log_prefix_sanitize
        - str_append
        - str_append_data
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:342,4'
          Dst:             str_append
        - Src:             'failures.c:343,3'
          Dst:             str_append
        - Src:             'failures.c:345,19'
          Dst:             log_prefix_sanitize
        - Src:             'failures.c:345,3'
          Dst:             str_append
        - Src:             'failures.c:346,3'
          Dst:             str_append
        - Src:             'failures.c:348,24'
          Dst:             log_prefix_sanitize
        - Src:             'failures.c:349,3'
          Dst:             strlen
        - Src:             'failures.c:349,3'
          Dst:             i_panic
        - Src:             'failures.c:350,3'
          Dst:             str_append_data
        - Src:             'failures.c:351,3'
          Dst:             str_append
        - Src:             'failures.c:352,3'
          Dst:             str_append
    - functionName:    i_unreached
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:1020,2'
          Dst:             i_panic
    - functionName:    syslog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_panic
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - lib_set_clean_exit
      functionUses:    723
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:521,2'
          Dst:             lib_set_clean_exit
    - functionName:    str_delete
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:77,2'
          Dst:             buffer_delete
    - functionName:    default_fatal_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_handler_real
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:481,2'
          Dst:             fatal_handler_real
    - functionName:    fatal_handler_real
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - common_handler
        - default_fatal_finish
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:470,6'
          Dst:             common_handler
        - Src:             'failures.c:473,2'
          Dst:             default_fatal_finish
    - functionName:    common_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:268,2'
          Dst:             t_push
        - Src:             'failures.c:270,4'
          Dst:             t_pop
        - Src:             'failures.c:270,4'
          Dst:             i_panic
    - functionName:    default_fatal_finish
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          104
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - backtrace_get
        - failure_exit
        - getenv
        - i_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:454,7'
          Dst:             backtrace_get
        - Src:             'failures.c:455,4'
          Dst:             i_error
        - Src:             'failures.c:459,32'
          Dst:             getenv
        - Src:             'failures.c:460,35'
          Dst:             getenv
        - Src:             'failures.c:461,3'
          Dst:             abort
        - Src:             'failures.c:463,3'
          Dst:             failure_exit
    - functionName:    i_error
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:565,18'
          Dst:             __errno_location
        - Src:             'failures.c:572,2'
          Dst:             __errno_location
    - functionName:    failure_exit
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lib_exit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:314,2'
          Dst:             lib_exit
    - functionName:    default_error_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - error_handler_real
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:489,2'
          Dst:             error_handler_real
    - functionName:    error_handler_real
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - common_handler
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:282,6'
          Dst:             common_handler
        - Src:             'failures.c:285,3'
          Dst:             abort
    - functionName:    default_write
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          114
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - log_fd_write
        - log_prefix_add
        - log_timestamp_add
        - printf_format_fix
        - str_append_c
        - str_c
        - str_data
        - str_delete
        - str_len
        - str_vprintfa
        - strchr
        - t_str_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'failures.c:93,2'
          Branch Sides:    []
      Callsites:
        - Src:             'failures.c:84,19'
          Dst:             t_str_new
        - Src:             'failures.c:85,2'
          Dst:             log_timestamp_add
        - Src:             'failures.c:86,2'
          Dst:             log_prefix_add
        - Src:             'failures.c:87,22'
          Dst:             str_len
        - Src:             'failures.c:90,21'
          Dst:             printf_format_fix
        - Src:             'failures.c:90,2'
          Dst:             str_vprintfa
        - Src:             'failures.c:106,21'
          Dst:             str_c
        - Src:             'failures.c:106,14'
          Dst:             strchr
        - Src:             'failures.c:107,25'
          Dst:             str_c
        - Src:             'failures.c:108,24'
          Dst:             str_data
        - Src:             'failures.c:108,7'
          Dst:             log_fd_write
        - Src:             'failures.c:111,3'
          Dst:             str_delete
        - Src:             'failures.c:114,2'
          Dst:             str_append_c
        - Src:             'failures.c:115,26'
          Dst:             str_data
        - Src:             'failures.c:115,42'
          Dst:             str_len
        - Src:             'failures.c:115,9'
          Dst:             log_fd_write
    - functionName:    default_on_handler_failure
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - failure_exit
        - i_fatal_status
      functionUses:    0
      BranchProfiles:
        - Branch String:   'failures.c:121,2'
          Branch Sides:    []
      Callsites:
        - Src:             'failures.c:128,3'
          Dst:             i_fatal_status
        - Src:             'failures.c:131,3'
          Dst:             failure_exit
    - functionName:    i_fatal_status
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - lib_set_clean_exit
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:552,2'
          Dst:             lib_set_clean_exit
    - functionName:    log_timestamp_add
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - get_log_stamp_format
        - i_gettimeofday
        - localtime
        - str_append
        - strftime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:325,4'
          Dst:             i_gettimeofday
        - Src:             'failures.c:326,9'
          Dst:             localtime
        - Src:             'failures.c:332,9'
          Dst:             get_log_stamp_format
        - Src:             'failures.c:331,7'
          Dst:             strftime
        - Src:             'failures.c:333,4'
          Dst:             str_append
    - functionName:    localtime
      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:    get_log_stamp_format
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:302,9'
          Dst:             t_strdup_printf
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    failures_deinit
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         29
      ICount:          115
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - i_close_fd_path
        - log_fd_can_close
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:996,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:997,3'
          Dst:             i_close_fd_path
        - Src:             'failures.c:1001,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:1002,3'
          Dst:             i_close_fd_path
        - Src:             'failures.c:1006,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:1007,3'
          Dst:             i_close_fd_path
        - Src:             'failures.c:1011,2'
          Dst:             p_free_internal
        - Src:             'failures.c:1012,2'
          Dst:             p_free_internal
        - Src:             'failures.c:1013,2'
          Dst:             p_free_internal
        - Src:             'failures.c:1014,2'
          Dst:             p_free_internal
    - functionName:    log_fd_can_close
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_set_failure_exit_callback
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 986
      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:    i_set_failure_send_prefix
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_failure_send_option
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:980,2'
          Dst:             i_failure_send_option
    - functionName:    i_failure_send_option
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_failure_send_option_forced
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:744,9'
          Dst:             i_failure_send_option_forced
    - functionName:    i_internal_error_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - error_handler_real
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:905,2'
          Dst:             error_handler_real
    - functionName:    internal_on_handler_failure
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - failure_exit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:234,2'
          Dst:             failure_exit
    - functionName:    i_set_failure_send_ip
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_failure_send_option
        - net_ip2addr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:975,30'
          Dst:             net_ip2addr
        - Src:             'failures.c:975,2'
          Dst:             i_failure_send_option
    - functionName:    i_set_failure_timestamp_format
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_strdup
        - i_strdup_until
        - p_free_internal
        - strstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:961,2'
          Dst:             p_free_internal
        - Src:             'failures.c:962,2'
          Dst:             p_free_internal
        - Src:             'failures.c:964,6'
          Dst:             strstr
        - Src:             'failures.c:966,22'
          Dst:             i_strdup
        - Src:             'failures.c:968,22'
          Dst:             i_strdup_until
        - Src:             'failures.c:969,29'
          Dst:             i_strdup
    - functionName:    i_failure_have_stdout_logs
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_set_debug_file
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - open_log_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:946,2'
          Dst:             open_log_file
    - functionName:    open_log_file
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - failure_exit
        - fd_close_on_exec
        - i_fatal_status
        - log_fd_can_close
        - open
        - strcmp
        - strlen
        - t_strdup_printf
        - write_full
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:677,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:678,7'
          Dst:             close
        - Src:             'failures.c:679,10'
          Dst:             t_strdup_printf
        - Src:             'failures.c:680,41'
          Dst:             strlen
        - Src:             'failures.c:680,10'
          Dst:             write_full
        - Src:             'failures.c:684,22'
          Dst:             strcmp
        - Src:             'failures.c:686,11'
          Dst:             strcmp
        - Src:             'failures.c:689,9'
          Dst:             open
        - Src:             'failures.c:692,10'
          Dst:             t_strdup_printf
        - Src:             'failures.c:694,41'
          Dst:             strlen
        - Src:             'failures.c:694,10'
          Dst:             write_full
        - Src:             'failures.c:696,5'
          Dst:             failure_exit
        - Src:             'failures.c:698,5'
          Dst:             i_fatal_status
        - Src:             'failures.c:700,3'
          Dst:             fd_close_on_exec
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_set_info_file
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - default_error_handler
        - i_set_debug_handler
        - open_log_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:933,2'
          Dst:             open_log_file
        - Src:             'failures.c:938,2'
          Dst:             i_set_debug_handler
        - Src:             'failures.c:938,2'
          Dst:             default_error_handler
    - functionName:    i_set_debug_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_set_failure_ignore_errors
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_failure_handler_is_internal
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_internal_fatal_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_handler_real
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:894,2'
          Dst:             fatal_handler_real
    - functionName:    i_set_failure_internal
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 915
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fd_set_nonblock
        - i_internal_error_handler
        - i_internal_fatal_handler
        - i_set_debug_handler
        - i_set_error_handler
        - i_set_fatal_handler
        - i_set_info_handler
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:910,2'
          Dst:             fd_set_nonblock
        - Src:             'failures.c:911,2'
          Dst:             i_set_fatal_handler
        - Src:             'failures.c:911,2'
          Dst:             i_internal_fatal_handler
        - Src:             'failures.c:912,2'
          Dst:             i_set_error_handler
        - Src:             'failures.c:912,2'
          Dst:             i_internal_error_handler
        - Src:             'failures.c:913,2'
          Dst:             i_set_info_handler
        - Src:             'failures.c:913,2'
          Dst:             i_internal_error_handler
        - Src:             'failures.c:914,2'
          Dst:             i_set_debug_handler
        - Src:             'failures.c:914,2'
          Dst:             i_internal_error_handler
    - functionName:    i_set_fatal_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_set_error_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getenv
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:618,22'
          Dst:             getenv
    - functionName:    i_set_info_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    line_parse_prefix
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          96
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - i_warning
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:832,3'
          Dst:             i_warning
        - Src:             'failures.c:838,3'
          Dst:             i_warning
    - functionName:    i_warning
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:577,18'
          Dst:             __errno_location
        - Src:             'failures.c:584,2'
          Dst:             __errno_location
    - functionName:    i_failure_parse_line
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          161
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - line_parse_prefix
        - str_parse_uint
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:852,7'
          Dst:             line_parse_prefix
        - Src:             'failures.c:874,7'
          Dst:             str_parse_uint
        - Src:             'failures.c:879,34'
          Dst:             strlen
    - functionName:    i_get_failure_prefix
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          17
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_unset_failure_prefix
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:764,2'
          Dst:             p_free_internal
        - Src:             'failures.c:765,15'
          Dst:             i_strdup
    - functionName:    i_set_failure_prefix
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
        - log_prefix_sanitize
        - p_free_internal
        - t_pop
        - t_push
        - t_strdup_vprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:752,2'
          Dst:             p_free_internal
        - Src:             'failures.c:753,2'
          Dst:             t_push
        - Src:             'failures.c:755,4'
          Dst:             t_strdup_vprintf
        - Src:             'failures.c:754,25'
          Dst:             log_prefix_sanitize
        - Src:             'failures.c:754,16'
          Dst:             i_strdup
        - Src:             'failures.c:756,4'
          Dst:             t_pop
        - Src:             'failures.c:756,4'
          Dst:             i_panic
    - functionName:    i_set_failure_file
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          100
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - close
        - default_error_handler
        - default_fatal_handler
        - i_error
        - i_set_debug_handler
        - i_set_error_handler
        - i_set_failure_prefix
        - i_set_fatal_handler
        - i_set_info_handler
        - log_fd_can_close
        - open_log_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:706,2'
          Dst:             i_set_failure_prefix
        - Src:             'failures.c:708,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:709,7'
          Dst:             close
        - Src:             'failures.c:710,4'
          Dst:             i_error
        - Src:             'failures.c:713,6'
          Dst:             log_fd_can_close
        - Src:             'failures.c:715,7'
          Dst:             close
        - Src:             'failures.c:716,4'
          Dst:             i_error
        - Src:             'failures.c:719,2'
          Dst:             open_log_file
        - Src:             'failures.c:725,2'
          Dst:             i_set_fatal_handler
        - Src:             'failures.c:725,2'
          Dst:             default_fatal_handler
        - Src:             'failures.c:726,2'
          Dst:             i_set_error_handler
        - Src:             'failures.c:726,2'
          Dst:             default_error_handler
        - Src:             'failures.c:727,2'
          Dst:             i_set_info_handler
        - Src:             'failures.c:727,2'
          Dst:             default_error_handler
        - Src:             'failures.c:728,2'
          Dst:             i_set_debug_handler
        - Src:             'failures.c:728,2'
          Dst:             default_error_handler
    - functionName:    i_set_failure_syslog
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_set_debug_handler
        - i_set_error_handler
        - i_set_fatal_handler
        - i_set_info_handler
        - i_strdup
        - i_syslog_error_handler
        - i_syslog_fatal_handler
        - openlog
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:663,2'
          Dst:             p_free_internal
        - Src:             'failures.c:664,17'
          Dst:             i_strdup
        - Src:             'failures.c:665,2'
          Dst:             openlog
        - Src:             'failures.c:667,2'
          Dst:             i_set_fatal_handler
        - Src:             'failures.c:667,2'
          Dst:             i_syslog_fatal_handler
        - Src:             'failures.c:668,2'
          Dst:             i_set_error_handler
        - Src:             'failures.c:668,2'
          Dst:             i_syslog_error_handler
        - Src:             'failures.c:669,2'
          Dst:             i_set_info_handler
        - Src:             'failures.c:669,2'
          Dst:             i_syslog_error_handler
        - Src:             'failures.c:670,2'
          Dst:             i_set_debug_handler
        - Src:             'failures.c:670,2'
          Dst:             i_syslog_error_handler
    - functionName:    openlog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_syslog_fatal_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_handler_real
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:648,2'
          Dst:             fatal_handler_real
    - functionName:    i_syslog_error_handler
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - error_handler_real
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:656,2'
          Dst:             error_handler_real
    - functionName:    syslog_on_handler_failure
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - failure_exit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:189,2'
          Dst:             failure_exit
    - functionName:    i_get_failure_handlers
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_debug
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:601,18'
          Dst:             __errno_location
        - Src:             'failures.c:608,2'
          Dst:             __errno_location
    - functionName:    i_info
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:589,18'
          Dst:             __errno_location
        - Src:             'failures.c:596,2'
          Dst:             __errno_location
    - functionName:    i_log_typev
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'failures.c:504,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    i_log_type
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_log_typev
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:497,2'
          Dst:             i_log_typev
    - functionName:    i_fatal
      functionSourceFile: '/src/dovecot/src/lib/failures.c'
      linkageType:     externalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - lib_set_clean_exit
      functionUses:    78
      BranchProfiles:  []
      Callsites:
        - Src:             'failures.c:536,2'
          Dst:             lib_set_clean_exit
    - functionName:    i_close_fd_path
      functionSourceFile: '/src/dovecot/src/lib/fd-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - i_error
        - i_panic
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'fd-util.c:153,3'
          Dst:             i_panic
        - Src:             'fd-util.c:160,16'
          Dst:             __errno_location
        - Src:             'fd-util.c:164,6'
          Dst:             close
        - Src:             'fd-util.c:164,6'
          Dst:             __errno_location
        - Src:             'fd-util.c:165,3'
          Dst:             i_error
        - Src:             'fd-util.c:170,2'
          Dst:             __errno_location
    - functionName:    fd_close_maybe_stdio
      functionSourceFile: '/src/dovecot/src/lib/fd-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - dup2
        - i_close_fd_path
        - i_fatal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fd-util.c:135,4'
          Dst:             i_close_fd_path
        - Src:             'fd-util.c:136,12'
          Dst:             dup2
        - Src:             'fd-util.c:139,4'
          Dst:             i_fatal
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fd_set_nonblock
      functionSourceFile: '/src/dovecot/src/lib/fd-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - fcntl
        - i_fatal
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fd-util.c:109,2'
          Dst:             i_panic
        - Src:             'fd-util.c:111,10'
          Dst:             fcntl
        - Src:             'fd-util.c:113,3'
          Dst:             i_fatal
        - Src:             'fd-util.c:120,6'
          Dst:             fcntl
        - Src:             'fd-util.c:121,3'
          Dst:             i_fatal
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fd_debug_verify_leaks
      functionSourceFile: '/src/dovecot/src/lib/fd-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          184
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - dec2str
        - fcntl
        - fstat
        - getsockname
        - gnu_dev_major
        - gnu_dev_minor
        - i_error
        - i_fatal
        - net_getpeername
        - net_getsockname
        - net_ip2addr
        - strerror
        - t_readlink
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fd-util.c:34,7'
          Dst:             fcntl
        - Src:             'fd-util.c:34,38'
          Dst:             __errno_location
        - Src:             'fd-util.c:37,15'
          Dst:             __errno_location
        - Src:             'fd-util.c:39,7'
          Dst:             net_getsockname
        - Src:             'fd-util.c:45,9'
          Dst:             getsockname
        - Src:             'fd-util.c:49,5'
          Dst:             i_error
        - Src:             'fd-util.c:55,8'
          Dst:             net_getpeername
        - Src:             'fd-util.c:60,9'
          Dst:             net_ip2addr
        - Src:             'fd-util.c:61,5'
          Dst:             net_ip2addr
        - Src:             'fd-util.c:59,4'
          Dst:             i_error
        - Src:             'fd-util.c:66,7'
          Dst:             fstat
        - Src:             'fd-util.c:69,19'
          Dst:             t_strdup_printf
        - Src:             'fd-util.c:69,8'
          Dst:             t_readlink
        - Src:             'fd-util.c:71,13'
          Dst:             t_strdup_printf
        - Src:             'fd-util.c:83,24'
          Dst:             gnu_dev_major
        - Src:             'fd-util.c:83,16'
          Dst:             dec2str
        - Src:             'fd-util.c:84,13'
          Dst:             gnu_dev_minor
        - Src:             'fd-util.c:84,5'
          Dst:             dec2str
        - Src:             'fd-util.c:84,32'
          Dst:             dec2str
        - Src:             'fd-util.c:82,4'
          Dst:             i_error
        - Src:             'fd-util.c:97,8'
          Dst:             strerror
        - Src:             'fd-util.c:96,3'
          Dst:             i_error
        - Src:             'fd-util.c:102,3'
          Dst:             i_fatal
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gnu_dev_major
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gnu_dev_minor
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fd_close_on_exec
      functionSourceFile: '/src/dovecot/src/lib/fd-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - fcntl
        - i_fatal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fd-util.c:16,10'
          Dst:             fcntl
        - Src:             'fd-util.c:18,3'
          Dst:             i_fatal
        - Src:             'fd-util.c:21,6'
          Dst:             fcntl
        - Src:             'fd-util.c:22,3'
          Dst:             i_fatal
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    guid_128_from_uuid_string
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          186
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - guid_128_from_string
        - i_panic
        - str_append_c
        - str_c
        - strlen
        - t_pop
        - t_push
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:166,2'
          Dst:             t_push
        - Src:             'guid.c:167,9'
          Dst:             strlen
        - Src:             'guid.c:168,20'
          Dst:             t_str_new
        - Src:             'guid.c:176,4'
          Dst:             str_append_c
        - Src:             'guid.c:178,30'
          Dst:             str_c
        - Src:             'guid.c:178,9'
          Dst:             guid_128_from_string
        - Src:             'guid.c:179,4'
          Dst:             t_pop
        - Src:             'guid.c:179,4'
          Dst:             i_panic
    - functionName:    guid_128_from_string
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_create_from_data
        - hex_to_binary
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:124,2'
          Dst:             buffer_create_from_data
        - Src:             'guid.c:125,9'
          Dst:             strlen
        - Src:             'guid.c:126,3'
          Dst:             hex_to_binary
    - functionName:    guid_128_to_uuid_string
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          111
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached:
        - guid_128_to_string
        - guid_128_to_uuid_string
        - i_unreached
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'guid.c:147,2'
          Branch Sides:    []
      Callsites:
        - Src:             'guid.c:149,10'
          Dst:             guid_128_to_string
        - Src:             'guid.c:151,10'
          Dst:             t_strdup_printf
        - Src:             'guid.c:157,34'
          Dst:             guid_128_to_uuid_string
        - Src:             'guid.c:157,10'
          Dst:             t_strdup_printf
        - Src:             'guid.c:159,2'
          Dst:             i_unreached
    - functionName:    guid_128_to_string
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:132,9'
          Dst:             binary_to_hex
    - functionName:    guid_128_cmp
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:142,9'
          Dst:             memcmp
    - functionName:    guid_128_hash
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mem_hash
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:137,9'
          Dst:             mem_hash
    - functionName:    guid_128_equals
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:117,9'
          Dst:             memcmp
    - functionName:    guid_128_is_empty
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    guid_128_uuid4_generate
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_fill
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:99,2'
          Dst:             random_fill
    - functionName:    guid_128_generate
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          170
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - clock_gettime
        - getpid
        - guid_128_host_hash_get
        - i_fatal
        - i_memcpy
        - my_hostdomain
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:62,7'
          Dst:             clock_gettime
        - Src:             'guid.c:63,4'
          Dst:             i_fatal
        - Src:             'guid.c:64,9'
          Dst:             getpid
        - Src:             'guid.c:70,26'
          Dst:             my_hostdomain
        - Src:             'guid.c:70,3'
          Dst:             guid_128_host_hash_get
        - Src:             'guid.c:94,2'
          Dst:             i_memcpy
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    guid_128_host_hash_get
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - sha1_get_digest
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:45,24'
          Dst:             strlen
        - Src:             'guid.c:45,2'
          Dst:             sha1_get_digest
        - Src:             'guid.c:46,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    guid_generate
      functionSourceFile: '/src/dovecot/src/lib/guid.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - clock_gettime
        - getpid
        - i_fatal
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'guid.c:25,7'
          Dst:             clock_gettime
        - Src:             'guid.c:26,4'
          Dst:             i_fatal
        - Src:             'guid.c:27,9'
          Dst:             getpid
        - Src:             'guid.c:34,9'
          Dst:             t_strdup_printf
    - functionName:    free_node
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:104,3'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strfastcase_hash
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          60
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mem_hash
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcase_hash
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:549,18'
          Dst:             toupper
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_hash
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          59
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_copy
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_freeze
        - hash_table_insert
        - hash_table_iterate
        - hash_table_iterate_deinit
        - hash_table_iterate_init
        - hash_table_thaw
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:512,2'
          Dst:             hash_table_freeze
        - Src:             'hash.c:514,9'
          Dst:             hash_table_iterate_init
        - Src:             'hash.c:515,9'
          Dst:             hash_table_iterate
        - Src:             'hash.c:516,3'
          Dst:             hash_table_insert
        - Src:             'hash.c:517,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'hash.c:519,2'
          Dst:             hash_table_thaw
    - functionName:    hash_table_freeze
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_iterate_init
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_freeze
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:375,2'
          Dst:             hash_table_freeze
        - Src:             'hash.c:377,8'
          Dst:             malloc_multiply_check
        - Src:             'hash.c:377,8'
          Dst:             p_malloc
    - functionName:    hash_table_iterate
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_iterate_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:408,10'
          Dst:             hash_table_iterate_next
        - Src:             'hash.c:416,14'
          Dst:             hash_table_iterate_next
    - functionName:    hash_table_insert
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_insert_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:300,2'
          Dst:             hash_table_insert_node
    - functionName:    hash_table_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_thaw
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:428,2'
          Dst:             hash_table_thaw
        - Src:             'hash.c:429,2'
          Dst:             p_free_internal
    - functionName:    hash_table_thaw
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_compress_removed
        - hash_table_resize
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:439,2'
          Dst:             i_panic
        - Src:             'hash.c:445,8'
          Dst:             hash_table_resize
        - Src:             'hash.c:446,4'
          Dst:             hash_table_compress_removed
    - functionName:    hash_table_resize
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          286
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - free_node
        - hash_table_insert_node
        - i_panic
        - malloc_multiply_check
        - p_free_internal
        - p_malloc
        - primes_closest
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:456,2'
          Dst:             i_panic
        - Src:             'hash.c:462,14'
          Dst:             primes_closest
        - Src:             'hash.c:462,14'
          Dst:             primes_closest
        - Src:             'hash.c:475,17'
          Dst:             malloc_multiply_check
        - Src:             'hash.c:475,17'
          Dst:             p_malloc
        - Src:             'hash.c:486,4'
          Dst:             hash_table_insert_node
        - Src:             'hash.c:494,5'
          Dst:             hash_table_insert_node
        - Src:             'hash.c:497,4'
          Dst:             free_node
        - Src:             'hash.c:503,2'
          Dst:             p_free_internal
    - functionName:    hash_table_compress_removed
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_compress
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:340,3'
          Dst:             hash_table_compress
    - functionName:    hash_table_compress
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - free_node
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:313,2'
          Dst:             i_panic
        - Src:             'hash.c:321,4'
          Dst:             free_node
        - Src:             'hash.c:331,3'
          Dst:             free_node
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    hash_table_insert_node
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          380
      EdgeCount:       78
      CyclomaticComplexity: 17
      functionsReached:
        - hash_table_insert_node
        - hash_table_lookup_node
        - hash_table_resize
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:222,2'
          Dst:             i_panic
        - Src:             'hash.c:223,2'
          Dst:             i_panic
        - Src:             'hash.c:231,10'
          Dst:             hash_table_lookup_node
        - Src:             'hash.c:233,4'
          Dst:             i_panic
        - Src:             'hash.c:252,4'
          Dst:             i_panic
        - Src:             'hash.c:266,5'
          Dst:             i_panic
        - Src:             'hash.c:276,29'
          Dst:             hash_table_resize
        - Src:             'hash.c:278,4'
          Dst:             hash_table_insert_node
        - Src:             'hash.c:283,11'
          Dst:             malloc_multiply_check
        - Src:             'hash.c:283,11'
          Dst:             p_malloc
    - functionName:    hash_table_lookup_node
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_iterate_next
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_count
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      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:    hash_table_try_remove
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - hash_table_compress
        - hash_table_lookup_node
        - hash_table_resize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:352,9'
          Dst:             hash_table_lookup_node
        - Src:             'hash.c:361,12'
          Dst:             hash_table_resize
        - Src:             'hash.c:362,3'
          Dst:             hash_table_compress
    - functionName:    hash_table_update
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_table_insert_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:305,2'
          Dst:             hash_table_insert_node
    - functionName:    hash_table_lookup_full
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_lookup_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:204,9'
          Dst:             hash_table_lookup_node
    - functionName:    hash_table_lookup
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_lookup_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:194,9'
          Dst:             hash_table_lookup_node
    - functionName:    hash_table_clear
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_node_list
        - hash_table_destroy_nodes
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:154,2'
          Dst:             i_panic
        - Src:             'hash.c:157,3'
          Dst:             hash_table_destroy_nodes
        - Src:             'hash.c:161,4'
          Dst:             destroy_node_list
    - functionName:    hash_table_destroy_nodes
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_node_list
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:128,4'
          Dst:             destroy_node_list
    - functionName:    destroy_node_list
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:117,3'
          Dst:             p_free_internal
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_destroy
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_node_list
        - hash_table_destroy_nodes
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:140,2'
          Dst:             i_panic
        - Src:             'hash.c:143,3'
          Dst:             hash_table_destroy_nodes
        - Src:             'hash.c:144,3'
          Dst:             destroy_node_list
        - Src:             'hash.c:147,2'
          Dst:             pool_unref
        - Src:             'hash.c:148,2'
          Dst:             p_free_internal
        - Src:             'hash.c:149,2'
          Dst:             p_free_internal
    - functionName:    direct_cmp
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    direct_hash
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_table_create_direct
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - direct_cmp
        - direct_hash
        - hash_table_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:97,2'
          Dst:             hash_table_create
        - Src:             'hash.c:97,2'
          Dst:             direct_hash
        - Src:             'hash.c:97,2'
          Dst:             direct_cmp
    - functionName:    hash_table_create
      functionSourceFile: '/src/dovecot/src/lib/hash.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
        - pool_ref
        - primes_closest
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash.c:69,2'
          Dst:             pool_ref
        - Src:             'hash.c:70,10'
          Dst:             malloc_multiply_check
        - Src:             'hash.c:70,10'
          Dst:             p_malloc
        - Src:             'hash.c:73,3'
          Dst:             primes_closest
        - Src:             'hash.c:73,3'
          Dst:             primes_closest
        - Src:             'hash.c:79,17'
          Dst:             malloc_multiply_check
        - Src:             'hash.c:79,17'
          Dst:             p_malloc
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_result_size
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          74
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_size
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_init_size
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_hash_data
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
        - buffer_create_dynamic
        - hash_method_get_digest
        - i_panic
        - pool_datastack_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-method.c:67,2'
          Dst:             i_panic
        - Src:             'hash-method.c:68,21'
          Dst:             pool_datastack_create
        - Src:             'hash-method.c:68,21'
          Dst:             buffer_create_dynamic
        - Src:             'hash-method.c:69,26'
          Dst:             buffer_append_space_unsafe
        - Src:             'hash-method.c:72,2'
          Dst:             hash_method_get_digest
    - functionName:    hash_method_get_digest
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     externalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-method.c:55,2'
          Dst:             i_panic
        - Src:             'hash-method.c:56,2'
          Dst:             i_panic
    - functionName:    hash_method_lookup
      functionSourceFile: '/src/dovecot/src/lib/hash-method.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hash-method.c:16,7'
          Dst:             strcmp
    - functionName:    hex_to_binary
      functionSourceFile: '/src/dovecot/src/lib/hex-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          236
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - buffer_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hex-binary.c:80,3'
          Dst:             buffer_append_c
    - functionName:    binary_to_hex_append
      functionSourceFile: '/src/dovecot/src/lib/hex-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex_case
        - buffer_append_space_unsafe
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hex-binary.c:52,8'
          Dst:             buffer_append_space_unsafe
        - Src:             'hex-binary.c:53,2'
          Dst:             binary_to_hex_case
    - functionName:    binary_to_hex_case
      functionSourceFile: '/src/dovecot/src/lib/hex-binary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    binary_to_hex_ucase
      functionSourceFile: '/src/dovecot/src/lib/hex-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex_case
        - malloc_multiply_check
        - t_malloc_no0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hex-binary.c:40,37'
          Dst:             malloc_multiply_check
        - Src:             'hex-binary.c:40,24'
          Dst:             t_malloc_no0
        - Src:             'hex-binary.c:42,2'
          Dst:             binary_to_hex_case
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    binary_to_hex
      functionSourceFile: '/src/dovecot/src/lib/hex-binary.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - binary_to_hex_case
        - malloc_multiply_check
        - t_malloc_no0
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hex-binary.c:31,37'
          Dst:             malloc_multiply_check
        - Src:             'hex-binary.c:31,24'
          Dst:             t_malloc_no0
        - Src:             'hex-binary.c:33,2'
          Dst:             binary_to_hex_case
    - functionName:    my_hostdomain
      functionSourceFile: '/src/dovecot/src/lib/hostpid.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - getenv
        - i_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hostpid.c:64,9'
          Dst:             getenv
        - Src:             'hostpid.c:66,15'
          Dst:             i_strdup
        - Src:             'hostpid.c:70,6'
          Dst:             getaddrinfo
        - Src:             'hostpid.c:71,15'
          Dst:             i_strdup
        - Src:             'hostpid.c:72,3'
          Dst:             freeaddrinfo
        - Src:             'hostpid.c:77,14'
          Dst:             i_strdup
    - 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:    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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hostpid_deinit
      functionSourceFile: '/src/dovecot/src/lib/hostpid.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hostpid.c:47,2'
          Dst:             p_free_internal
        - Src:             'hostpid.c:48,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hostpid_init
      functionSourceFile: '/src/dovecot/src/lib/hostpid.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - getenv
        - gethostname
        - getpid
        - i_fatal
        - i_snprintf
        - i_strdup
        - p_free_internal
        - strcspn
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hostpid.c:24,2'
          Dst:             p_free_internal
        - Src:             'hostpid.c:25,2'
          Dst:             p_free_internal
        - Src:             'hostpid.c:27,10'
          Dst:             getenv
        - Src:             'hostpid.c:29,7'
          Dst:             gethostname
        - Src:             'hostpid.c:30,4'
          Dst:             i_fatal
        - Src:             'hostpid.c:36,6'
          Dst:             strcspn
        - Src:             'hostpid.c:36,51'
          Dst:             strlen
        - Src:             'hostpid.c:37,3'
          Dst:             i_fatal
        - Src:             'hostpid.c:38,20'
          Dst:             i_strdup
        - Src:             'hostpid.c:41,50'
          Dst:             getpid
        - Src:             'hostpid.c:41,2'
          Dst:             i_snprintf
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    i_strconcat
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - i_panic
        - p_malloc
        - t_buffer_alloc
        - t_pop
        - t_push
        - vstrconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:65,2'
          Dst:             i_panic
        - Src:             'imem.c:69,2'
          Dst:             t_push
        - Src:             'imem.c:70,22'
          Dst:             vstrconcat
        - Src:             'imem.c:71,3'
          Dst:             t_buffer_alloc
        - Src:             'imem.c:72,9'
          Dst:             p_malloc
        - Src:             'imem.c:73,3'
          Dst:             i_memcpy
        - Src:             'imem.c:74,4'
          Dst:             t_pop
        - Src:             'imem.c:74,4'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_strdup_vprintf
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_vprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:56,9'
          Dst:             p_strdup_vprintf
    - functionName:    i_strdup_printf
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_vprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:49,8'
          Dst:             p_strdup_vprintf
    - functionName:    i_strndup
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:39,2'
          Dst:             i_panic
        - Src:             'imem.c:40,9'
          Dst:             p_strndup
    - functionName:    i_strdup_until
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:34,9'
          Dst:             p_strdup_until
    - functionName:    i_strdup_empty
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:29,9'
          Dst:             p_strdup_empty
    - functionName:    i_memdup
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_memdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:24,9'
          Dst:             p_memdup
    - functionName:    i_strdup
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:19,9'
          Dst:             p_strdup
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:130,3'
          Dst:             i_panic
    - functionName:    i_realloc
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_realloc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:14,9'
          Dst:             p_realloc
    - functionName:    i_malloc
      functionSourceFile: '/src/dovecot/src/lib/imem.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 9
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'imem.c:9,9'
          Dst:             p_malloc
    - functionName:    iostream_pump_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iostream_pump_switch_ioloop_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:250,2'
          Dst:             iostream_pump_switch_ioloop_to
    - functionName:    iostream_pump_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_switch_ioloop_to
        - io_loop_move_io_to
        - o_stream_switch_ioloop_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:241,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:243,14'
          Dst:             io_loop_move_io_to
        - Src:             'iostream-pump.c:244,2'
          Dst:             o_stream_switch_ioloop_to
        - Src:             'iostream-pump.c:245,2'
          Dst:             i_stream_switch_ioloop_to
    - functionName:    iostream_pump_is_waiting_output
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    iostream_pump_destroy
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_unref
        - iostream_pump_stop
        - iostream_pump_unref
        - o_stream_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:208,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:216,2'
          Dst:             iostream_pump_stop
        - Src:             'iostream-pump.c:217,2'
          Dst:             o_stream_unref
        - Src:             'iostream-pump.c:218,2'
          Dst:             i_stream_unref
        - Src:             'iostream-pump.c:220,2'
          Dst:             iostream_pump_unref
    - functionName:    iostream_pump_stop
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - io_remove
        - o_stream_unset_flush_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:225,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:228,3'
          Dst:             o_stream_unset_flush_callback
        - Src:             'iostream-pump.c:230,2'
          Dst:             io_remove
    - functionName:    iostream_pump_unref
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_unref
        - iostream_pump_stop
        - o_stream_unref
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:186,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:192,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:199,2'
          Dst:             iostream_pump_stop
        - Src:             'iostream-pump.c:201,2'
          Dst:             o_stream_unref
        - Src:             'iostream-pump.c:202,2'
          Dst:             i_stream_unref
        - Src:             'iostream-pump.c:203,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    iostream_pump_ref
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:179,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:180,2'
          Dst:             i_panic
    - functionName:    iostream_pump_set_completion_callback
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:172,2'
          Dst:             i_panic
    - functionName:    iostream_pump_get_output
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:164,2'
          Dst:             i_panic
    - functionName:    iostream_pump_get_input
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:158,2'
          Dst:             i_panic
    - functionName:    iostream_pump_copy
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          219
      EdgeCount:       48
      CyclomaticComplexity: 25
      functionsReached:
        - i_panic
        - i_unreached
        - io_remove
        - o_stream_cork
        - o_stream_finish
        - o_stream_get_max_buffer_size
        - o_stream_send_istream
        - o_stream_set_max_buffer_size
        - o_stream_uncork
      functionUses:    3
      BranchProfiles:
        - Branch String:   'iostream-pump.c:42,2'
          Branch Sides:    []
        - Branch String:   'iostream-pump.c:62,3'
          Branch Sides:    []
      Callsites:
        - Src:             'iostream-pump.c:33,2'
          Dst:             o_stream_cork
        - Src:             'iostream-pump.c:34,13'
          Dst:             o_stream_get_max_buffer_size
        - Src:             'iostream-pump.c:36,3'
          Dst:             o_stream_get_max_buffer_size
        - Src:             'iostream-pump.c:36,3'
          Dst:             o_stream_get_max_buffer_size
        - Src:             'iostream-pump.c:35,2'
          Dst:             o_stream_set_max_buffer_size
        - Src:             'iostream-pump.c:38,8'
          Dst:             o_stream_send_istream
        - Src:             'iostream-pump.c:39,2'
          Dst:             o_stream_set_max_buffer_size
        - Src:             'iostream-pump.c:40,2'
          Dst:             o_stream_uncork
        - Src:             'iostream-pump.c:44,3'
          Dst:             io_remove
        - Src:             'iostream-pump.c:49,3'
          Dst:             io_remove
        - Src:             'iostream-pump.c:54,3'
          Dst:             i_panic
        - Src:             'iostream-pump.c:56,3'
          Dst:             io_remove
        - Src:             'iostream-pump.c:60,3'
          Dst:             io_remove
        - Src:             'iostream-pump.c:62,11'
          Dst:             o_stream_finish
        - Src:             'iostream-pump.c:78,3'
          Dst:             i_panic
        - Src:             'iostream-pump.c:82,2'
          Dst:             i_unreached
    - functionName:    iostream_pump_flush
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - io_add_istream
        - io_set_pending
        - iostream_pump_copy
        - o_stream_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:89,13'
          Dst:             o_stream_flush
        - Src:             'iostream-pump.c:103,3'
          Dst:             iostream_pump_copy
        - Src:             'iostream-pump.c:105,14'
          Dst:             io_add_istream
        - Src:             'iostream-pump.c:105,14'
          Dst:             iostream_pump_copy
        - Src:             'iostream-pump.c:107,3'
          Dst:             io_set_pending
    - functionName:    iostream_pump_start
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - io_add_istream
        - io_set_pending
        - iostream_pump_copy
        - iostream_pump_flush
        - o_stream_set_flush_callback
        - o_stream_set_flush_pending
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:136,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:137,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:141,3'
          Dst:             o_stream_set_flush_callback
        - Src:             'iostream-pump.c:141,3'
          Dst:             iostream_pump_flush
        - Src:             'iostream-pump.c:147,3'
          Dst:             i_panic
        - Src:             'iostream-pump.c:148,3'
          Dst:             o_stream_set_flush_pending
        - Src:             'iostream-pump.c:150,14'
          Dst:             io_add_istream
        - Src:             'iostream-pump.c:150,14'
          Dst:             iostream_pump_copy
        - Src:             'iostream-pump.c:152,3'
          Dst:             io_set_pending
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    iostream_pump_create
      functionSourceFile: '/src/dovecot/src/lib/iostream-pump.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - i_stream_ref
        - malloc_multiply_check
        - o_stream_ref
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream-pump.c:117,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:119,2'
          Dst:             i_panic
        - Src:             'iostream-pump.c:122,2'
          Dst:             i_stream_ref
        - Src:             'iostream-pump.c:123,2'
          Dst:             o_stream_ref
        - Src:             'iostream-pump.c:126,9'
          Dst:             malloc_multiply_check
        - Src:             'iostream-pump.c:126,9'
          Dst:             p_malloc
    - functionName:    is08601_date_parse_time_offset
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          161
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - iso8601_date_parse_number
      functionUses:    1
      BranchProfiles:
        - Branch String:   'iso8601-date.c:97,2'
          Branch Sides:    []
      Callsites:
        - Src:             'iso8601-date.c:105,7'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:116,7'
          Dst:             iso8601_date_parse_number
    - functionName:    iso8601_date_parse_number
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          141
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:44,37'
          Dst:             __ctype_b_loc
        - Src:             'iso8601-date.c:51,38'
          Dst:             __ctype_b_loc
    - functionName:    iso8601_date_parse_secfrac
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:73,37'
          Dst:             __ctype_b_loc
        - Src:             'iso8601-date.c:78,38'
          Dst:             __ctype_b_loc
    - functionName:    is08601_date_parse_full_time
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          143
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - is08601_date_parse_time_offset
        - iso8601_date_parse_number
        - iso8601_date_parse_secfrac
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:144,6'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:153,6'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:162,6'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:166,6'
          Dst:             iso8601_date_parse_secfrac
        - Src:             'iso8601-date.c:170,6'
          Dst:             is08601_date_parse_time_offset
    - functionName:    is08601_date_parse_full_date
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          147
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - iso8601_date_parse_number
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:185,6'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:197,6'
          Dst:             iso8601_date_parse_number
        - Src:             'iso8601-date.c:207,6'
          Dst:             iso8601_date_parse_number
    - functionName:    iso8601_date_parse_date_time
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - is08601_date_parse_full_date
        - is08601_date_parse_full_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:217,6'
          Dst:             is08601_date_parse_full_date
        - Src:             'iso8601-date.c:227,6'
          Dst:             is08601_date_parse_full_time
    - functionName:    iso8601_date_create
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iso8601_date_create_tm
        - localtime
        - utc_offset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:305,7'
          Dst:             localtime
        - Src:             'iso8601-date.c:306,20'
          Dst:             utc_offset
        - Src:             'iso8601-date.c:308,9'
          Dst:             iso8601_date_create_tm
    - functionName:    iso8601_date_create_tm
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:290,17'
          Dst:             t_strdup_printf
        - Src:             'iso8601-date.c:295,9'
          Dst:             t_strdup_printf
    - functionName:    iso8601_date_parse_tm
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iso8601_date_do_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:274,9'
          Dst:             iso8601_date_do_parse
    - functionName:    iso8601_date_do_parse
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - iso8601_date_parse_date_time
        - utc_mktime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:246,6'
          Dst:             iso8601_date_parse_date_time
        - Src:             'iso8601-date.c:250,14'
          Dst:             utc_mktime
    - functionName:    iso8601_date_parse
      functionSourceFile: '/src/dovecot/src/lib/iso8601-date.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - iso8601_date_do_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iso8601-date.c:265,9'
          Dst:             iso8601_date_do_parse
    - functionName:    seekable_i_stream_get_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_data_size
        - i_stream_read
        - i_stream_seek
        - i_stream_skip
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1317,5'
          Dst:             i_stream_get_data_size
        - Src:             'istream.c:1316,4'
          Dst:             i_stream_skip
        - Src:             'istream.c:1318,19'
          Dst:             i_stream_read
        - Src:             'istream.c:1319,3'
          Dst:             i_panic
        - Src:             'istream.c:1324,3'
          Dst:             i_stream_seek
    - functionName:    i_stream_get_data_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_get_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:857,8'
          Dst:             i_stream_get_data
    - functionName:    i_stream_skip
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          146
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_free_buffer
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:576,4'
          Dst:             i_stream_free_buffer
    - functionName:    i_stream_read
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_is_io_pending_until_read
        - i_stream_read_memarea
        - i_stream_set_input_pending
        - i_stream_snapshot_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:330,8'
          Dst:             i_stream_read_memarea
        - Src:             'istream.c:332,3'
          Dst:             i_stream_snapshot_free
        - Src:             'istream.c:348,6'
          Dst:             i_stream_is_io_pending_until_read
        - Src:             'istream.c:352,3'
          Dst:             i_stream_set_input_pending
    - functionName:    i_stream_seek
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - i_stream_can_optimize_seek
        - i_stream_skip
        - i_stream_update
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:610,6'
          Dst:             i_stream_can_optimize_seek
        - Src:             'istream.c:611,3'
          Dst:             i_stream_skip
        - Src:             'istream.c:620,2'
          Dst:             i_stream_update
    - functionName:    i_stream_can_optimize_seek
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_can_optimize_seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:602,9'
          Dst:             i_stream_can_optimize_seek
    - functionName:    i_stream_update
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_read_memarea
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         66
      ICount:          453
      EdgeCount:       71
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_panic
        - i_stream_is_buffer_invalid
        - i_stream_seek
        - i_stream_update
        - i_stream_verify_reader
      functionUses:    3
      BranchProfiles:
        - Branch String:   'istream.c:456,2'
          Branch Sides:    []
      Callsites:
        - Src:             'istream.c:425,3'
          Dst:             __errno_location
        - Src:             'istream.c:429,2'
          Dst:             i_stream_verify_reader
        - Src:             'istream.c:433,3'
          Dst:             i_stream_seek
        - Src:             'istream.c:454,2'
          Dst:             i_panic
        - Src:             'istream.c:455,2'
          Dst:             i_panic
        - Src:             'istream.c:458,3'
          Dst:             i_panic
        - Src:             'istream.c:465,4'
          Dst:             __errno_location
        - Src:             'istream.c:467,4'
          Dst:             i_panic
        - Src:             'istream.c:468,4'
          Dst:             i_panic
        - Src:             'istream.c:472,3'
          Dst:             i_panic
        - Src:             'istream.c:475,3'
          Dst:             i_panic
        - Src:             'istream.c:476,3'
          Dst:             i_panic
        - Src:             'istream.c:477,3'
          Dst:             i_panic
        - Src:             'istream.c:490,2'
          Dst:             i_stream_update
        - Src:             'istream.c:493,2'
          Dst:             i_stream_is_buffer_invalid
        - Src:             'istream.c:493,2'
          Dst:             i_panic
    - functionName:    i_stream_snapshot_free
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_snapshot_free
        - i_stream_unref
        - memarea_unref
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:266,2'
          Dst:             i_stream_snapshot_free
        - Src:             'istream.c:271,4'
          Dst:             memarea_unref
        - Src:             'istream.c:272,3'
          Dst:             i_stream_unref
        - Src:             'istream.c:273,3'
          Dst:             p_free_internal
    - functionName:    i_stream_is_io_pending_until_read
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_io_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:299,19'
          Dst:             i_stream_get_io_parent
    - functionName:    i_stream_set_input_pending
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1138
      functionLinenumberEnd: 1151
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_root_io
        - i_stream_verify_pending_reachable
        - io_set_pending
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1144,11'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:1146,3'
          Dst:             io_set_pending
        - Src:             'istream.c:1148,3'
          Dst:             i_stream_verify_pending_reachable
    - functionName:    i_stream_get_root_io
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_get_io_parent
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1103,19'
          Dst:             i_stream_get_io_parent
        - Src:             'istream.c:1104,3'
          Dst:             i_panic
    - functionName:    i_stream_verify_pending_reachable
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_get_root_io
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1128,10'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:1133,4'
          Dst:             i_stream_get_name
        - Src:             'istream.c:1133,30'
          Dst:             i_stream_get_name
        - Src:             'istream.c:1131,3'
          Dst:             i_panic
    - functionName:    i_stream_get_name
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:20,2'
          Dst:             i_panic
    - functionName:    i_stream_get_io_parent
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_unref
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_snapshot_free
        - i_stream_unref
        - i_unreached
        - io_stream_free
        - io_stream_unref
        - str_free
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:64,8'
          Dst:             io_stream_unref
        - Src:             'istream.c:65,4'
          Dst:             i_unreached
        - Src:             'istream.c:69,3'
          Dst:             i_stream_snapshot_free
        - Src:             'istream.c:71,7'
          Dst:             io_stream_unref
        - Src:             'istream.c:72,4'
          Dst:             i_unreached
        - Src:             'istream.c:73,3'
          Dst:             str_free
        - Src:             'istream.c:74,3'
          Dst:             i_stream_unref
        - Src:             'istream.c:75,3'
          Dst:             io_stream_free
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_verify_reader
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          138
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_get_root_io
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:397,6'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:398,6'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:413,3'
          Dst:             i_stream_get_name
        - Src:             'istream.c:414,3'
          Dst:             i_stream_get_name
        - Src:             'istream.c:411,2'
          Dst:             i_panic
    - functionName:    i_stream_is_buffer_invalid
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_is_buffer_invalid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:811,9'
          Dst:             i_stream_is_buffer_invalid
    - functionName:    i_stream_free_buffer
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - memarea_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:552,3'
          Dst:             memarea_unref
        - Src:             'istream.c:555,3'
          Dst:             p_free_internal
    - functionName:    i_stream_get_data
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_is_buffer_invalid
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:824,6'
          Dst:             i_stream_is_buffer_invalid
    - functionName:    i_stream_w_buffer_free
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          22
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:945,2'
          Dst:             p_free_internal
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib/./istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './istream.h:229,2'
          Dst:             i_panic
        - Src:             './istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    i_stream_read_data
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:882,13'
          Dst:             i_stream_get_data
        - Src:             'istream.c:887,9'
          Dst:             i_stream_read
        - Src:             'istream.c:892,12'
          Dst:             i_stream_get_data
        - Src:             'istream.c:898,3'
          Dst:             i_panic
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    i_stream_create_error_str
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1480
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_error
        - io_stream_set_verror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1477,10'
          Dst:             i_stream_create_error
        - Src:             'istream.c:1478,2'
          Dst:             io_stream_set_verror
    - functionName:    i_stream_create_error
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1450
      functionLinenumberEnd: 1467
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          69
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_set_name
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1453,11'
          Dst:             malloc_multiply_check
        - Src:             'istream.c:1453,11'
          Dst:             p_malloc
        - Src:             'istream.c:1464,2'
          Dst:             i_stream_create
        - Src:             'istream.c:1466,2'
          Dst:             i_stream_set_name
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_stream_create
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1390
      functionLinenumberEnd: 1446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          302
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - i_stream_init_parent
        - io_stream_init
        - memarea_init_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1395,2'
          Dst:             i_panic
        - Src:             'istream.c:1401,3'
          Dst:             i_stream_init_parent
        - Src:             'istream.c:1405,22'
          Dst:             memarea_init_empty
        - Src:             'istream.c:1441,2'
          Dst:             io_stream_init
    - functionName:    i_stream_set_name
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          42
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:14,2'
          Dst:             p_free_internal
        - Src:             'istream.c:15,39'
          Dst:             i_strdup
    - functionName:    i_stream_init_parent
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          70
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1383,2'
          Dst:             i_stream_ref
    - functionName:    i_stream_default_close
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1224,3'
          Dst:             i_stream_close
    - functionName:    i_stream_default_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_free_buffer
        - i_stream_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1232,2'
          Dst:             i_stream_free_buffer
        - Src:             'istream.c:1233,2'
          Dst:             i_stream_unref
    - functionName:    i_stream_default_seek_seekable
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1242
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_default_seek_nonseekable
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1277
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          131
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_get_name
        - i_stream_read
        - i_stream_skip
        - io_stream_set_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1251,4'
          Dst:             i_stream_get_name
        - Src:             'istream.c:1250,3'
          Dst:             i_panic
        - Src:             'istream.c:1254,9'
          Dst:             i_stream_read
        - Src:             'istream.c:1262,4'
          Dst:             io_stream_set_error
        - Src:             'istream.c:1271,4'
          Dst:             i_stream_skip
        - Src:             'istream.c:1273,4'
          Dst:             i_stream_skip
    - functionName:    i_stream_default_stat
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - i_stream_stat
        - seekable_i_stream_get_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1338,6'
          Dst:             i_stream_stat
        - Src:             'istream.c:1347,8'
          Dst:             seekable_i_stream_get_size
    - functionName:    i_stream_default_get_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1362
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_noop_snapshot
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_default_snapshot
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - i_stream_get_name
        - malloc_multiply_check
        - memarea_ref
        - p_malloc
        - snapshot_has_memarea
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:231,8'
          Dst:             snapshot_has_memarea
        - Src:             'istream.c:236,14'
          Dst:             malloc_multiply_check
        - Src:             'istream.c:236,14'
          Dst:             p_malloc
        - Src:             'istream.c:239,3'
          Dst:             memarea_ref
        - Src:             'istream.c:247,4'
          Dst:             i_panic
        - Src:             'istream.c:251,4'
          Dst:             i_stream_get_name
        - Src:             'istream.c:250,3'
          Dst:             i_panic
    - functionName:    i_stream_default_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1214,3'
          Dst:             i_stream_set_max_buffer_size
    - functionName:    i_stream_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:159,2'
          Dst:             io_stream_set_max_buffer_size
    - functionName:    snapshot_has_memarea
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - snapshot_has_memarea
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:219,10'
          Dst:             snapshot_has_memarea
    - functionName:    i_stream_stat
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_close
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_close_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:149,3'
          Dst:             i_stream_close_full
    - functionName:    i_stream_close_full
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_stream_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:31,2'
          Dst:             io_stream_close
    - functionName:    i_stream_ref
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_ref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:49,2'
          Dst:             io_stream_ref
    - functionName:    i_stream_nonseekable_try_seek
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1281
      functionLinenumberEnd: 1306
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          119
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_default_seek_nonseekable
        - i_stream_seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1286,3'
          Dst:             i_stream_seek
        - Src:             'istream.c:1303,3'
          Dst:             i_stream_default_seek_nonseekable
    - functionName:    i_stream_unset_io
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_get_root_io
        - io_is_pending
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1197,11'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:1199,2'
          Dst:             i_panic
        - Src:             'istream.c:1200,6'
          Dst:             io_is_pending
    - functionName:    i_stream_set_io
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1183
      functionLinenumberEnd: 1193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_get_root_io
        - io_set_pending
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1184,11'
          Dst:             i_stream_get_root_io
        - Src:             'istream.c:1186,2'
          Dst:             i_panic
        - Src:             'istream.c:1190,3'
          Dst:             io_set_pending
    - functionName:    i_stream_io_ever_added
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_get_root_io
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1179,9'
          Dst:             i_stream_get_root_io
    - functionName:    i_stream_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_switch_ioloop_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1174,2'
          Dst:             i_stream_switch_ioloop_to
    - functionName:    i_stream_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_switch_ioloop_to
        - io_stream_switch_ioloop_to
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1155,2'
          Dst:             io_stream_switch_ioloop_to
        - Src:             'istream.c:1165,4'
          Dst:             i_stream_switch_ioloop_to
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    i_stream_add_data
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1097
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - i_stream_try_alloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1090,8'
          Dst:             i_stream_try_alloc
        - Src:             'istream.c:1094,2'
          Dst:             i_memcpy
    - functionName:    i_stream_try_alloc
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1035
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          240
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - i_stream_compress
        - i_stream_get_max_buffer_size
        - i_stream_grow_buffer
        - i_stream_w_buffer_realloc
        - memarea_get_refcount
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1003,2'
          Dst:             i_panic
        - Src:             'istream.c:1004,2'
          Dst:             i_panic
        - Src:             'istream.c:1010,8'
          Dst:             memarea_get_refcount
        - Src:             'istream.c:1014,5'
          Dst:             i_stream_w_buffer_realloc
        - Src:             'istream.c:1016,4'
          Dst:             i_stream_compress
        - Src:             'istream.c:1017,36'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream.c:1019,4'
          Dst:             i_stream_grow_buffer
        - Src:             'istream.c:1034,2'
          Dst:             i_panic
    - functionName:    i_stream_w_buffer_realloc
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - i_malloc
        - i_memcpy
        - i_panic
        - i_realloc
        - i_stream_w_buffer_free
        - memarea_free_without_callback
        - memarea_get_refcount
        - memarea_init
        - memarea_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:954,6'
          Dst:             memarea_get_refcount
        - Src:             'istream.c:957,3'
          Dst:             memarea_free_without_callback
        - Src:             'istream.c:958,16'
          Dst:             i_realloc
        - Src:             'istream.c:961,16'
          Dst:             i_malloc
        - Src:             'istream.c:963,4'
          Dst:             i_panic
        - Src:             'istream.c:964,4'
          Dst:             i_memcpy
        - Src:             'istream.c:967,4'
          Dst:             memarea_unref
        - Src:             'istream.c:973,20'
          Dst:             memarea_init
        - Src:             'istream.c:973,20'
          Dst:             i_stream_w_buffer_free
    - functionName:    i_stream_compress
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - memarea_get_refcount
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:931,2'
          Dst:             memarea_get_refcount
        - Src:             'istream.c:931,2'
          Dst:             i_panic
    - functionName:    i_stream_get_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_grow_buffer
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 998
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - i_stream_get_max_buffer_size
        - i_stream_w_buffer_realloc
        - nearest_power
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:987,25'
          Dst:             nearest_power
        - Src:             'istream.c:989,13'
          Dst:             i_stream_get_max_buffer_size
        - Src:             'istream.c:990,2'
          Dst:             i_panic
        - Src:             'istream.c:997,3'
          Dst:             i_stream_w_buffer_realloc
    - functionName:    i_stream_memarea_detach
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memarea_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1075,3'
          Dst:             memarea_unref
    - functionName:    i_stream_alloc
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_stream_try_alloc
        - i_stream_w_buffer_realloc
        - nearest_power
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1058,8'
          Dst:             i_stream_try_alloc
        - Src:             'istream.c:1061,25'
          Dst:             nearest_power
        - Src:             'istream.c:1062,3'
          Dst:             i_stream_w_buffer_realloc
        - Src:             'istream.c:1064,9'
          Dst:             i_stream_try_alloc
        - Src:             'istream.c:1065,3'
          Dst:             i_panic
    - functionName:    i_stream_try_alloc_avoid_compress
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_try_alloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:1046,13'
          Dst:             i_stream_try_alloc
        - Src:             'istream.c:1051,9'
          Dst:             i_stream_try_alloc
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib/./istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read_bytes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             './istream.h:238,2'
          Dst:             i_panic
    - functionName:    i_stream_read_limited
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_get_data
        - i_stream_read_more
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:914,12'
          Dst:             i_stream_get_data
        - Src:             'istream.c:921,8'
          Dst:             i_stream_read_more
    - functionName:    i_stream_get_modifiable_data
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          62
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_last_line_crlf
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_read_next_line
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - i_stream_get_data_size
        - i_stream_last_line
        - i_stream_next_line
        - i_stream_read
        - io_stream_set_error
      functionUses:    0
      BranchProfiles:
        - Branch String:   'istream.c:771,3'
          Branch Sides:    []
      Callsites:
        - Src:             'istream.c:767,10'
          Dst:             i_stream_next_line
        - Src:             'istream.c:771,11'
          Dst:             i_stream_read
        - Src:             'istream.c:776,5'
          Dst:             i_stream_get_data_size
        - Src:             'istream.c:773,4'
          Dst:             io_stream_set_error
        - Src:             'istream.c:777,27'
          Dst:             __errno_location
        - Src:             'istream.c:781,11'
          Dst:             i_stream_last_line
    - functionName:    i_stream_next_line
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_last_line
        - i_stream_next_line_finish
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:752,8'
          Dst:             memchr
        - Src:             'istream.c:755,10'
          Dst:             i_stream_next_line_finish
        - Src:             'istream.c:758,10'
          Dst:             i_stream_last_line
    - functionName:    i_stream_last_line
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_next_line_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:739,10'
          Dst:             i_stream_next_line_finish
    - functionName:    i_stream_next_line_finish
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          199
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - str_append_data
        - str_c_modifiable
        - str_new
        - str_truncate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:719,23'
          Dst:             str_new
        - Src:             'istream.c:720,3'
          Dst:             str_truncate
        - Src:             'istream.c:722,4'
          Dst:             str_append_data
        - Src:             'istream.c:724,9'
          Dst:             str_c_modifiable
    - functionName:    i_stream_get_absolute_offset
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_read_eof
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_get_data_size
        - i_stream_have_bytes_left
        - i_stream_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:683,6'
          Dst:             i_stream_get_data_size
        - Src:             'istream.c:684,9'
          Dst:             i_stream_read
        - Src:             'istream.c:685,10'
          Dst:             i_stream_have_bytes_left
    - functionName:    i_stream_have_bytes_left
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_get_data_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:678,9'
          Dst:             i_stream_get_data_size
    - functionName:    i_stream_get_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_sync
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_stream_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:644,3'
          Dst:             i_stream_update
    - functionName:    i_stream_seek_mark
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_stream_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:632,2'
          Dst:             i_stream_update
    - functionName:    i_stream_read_copy_from_parent
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          217
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - i_stream_get_data
        - i_stream_read_memarea
        - i_stream_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:523,19'
          Dst:             i_stream_get_data
        - Src:             'istream.c:527,9'
          Dst:             i_stream_read_memarea
        - Src:             'istream.c:530,20'
          Dst:             i_stream_get_data
        - Src:             'istream.c:536,3'
          Dst:             i_stream_update
        - Src:             'istream.c:543,2'
          Dst:             i_panic
        - Src:             'istream.c:545,2'
          Dst:             i_stream_update
    - functionName:    i_stream_get_last_read_time
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_read_more_memarea
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_get_data
        - i_stream_read_memarea
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:500,12'
          Dst:             i_stream_get_data
        - Src:             'istream.c:504,12'
          Dst:             i_stream_read_memarea
        - Src:             'istream.c:505,12'
          Dst:             i_stream_get_data
    - functionName:    i_stream_set_blocking
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fd_set_nonblock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:195,4'
          Dst:             fd_set_nonblock
    - functionName:    i_stream_set_persistent_buffers
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          41
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_set_return_partial_line
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_set_init_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_get_disconnect_reason
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_get_disconnect_reason
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:143,9'
          Dst:             io_stream_get_disconnect_reason
    - functionName:    i_stream_get_error
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:138,9'
          Dst:             strerror
    - functionName:    i_stream_set_error
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_set_verror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:118,2'
          Dst:             io_stream_set_verror
    - functionName:    i_stream_copy_fd
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_get_fd
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:103,11'
          Dst:             i_stream_get_fd
        - Src:             'istream.c:105,2'
          Dst:             i_panic
        - Src:             'istream.c:106,2'
          Dst:             i_panic
    - functionName:    i_stream_get_fd
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_remove_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_remove_destroy_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:90,2'
          Dst:             io_stream_remove_destroy_callback
    - functionName:    i_stream_add_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_add_destroy_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:83,2'
          Dst:             io_stream_add_destroy_callback
    - functionName:    i_stream_destroy
      functionSourceFile: '/src/dovecot/src/lib/istream.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_stream_close_full
        - i_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream.c:43,2'
          Dst:             i_stream_close_full
        - Src:             'istream.c:44,2'
          Dst:             i_stream_unref
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_copied_data_free
      functionSourceFile: '/src/dovecot/src/lib/istream-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          22
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-data.c:43,2'
          Dst:             p_free_internal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    i_stream_create_copy_from_data
      functionSourceFile: '/src/dovecot/src/lib/istream-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_malloc
        - i_memcpy
        - i_stream_add_destroy_callback
        - i_stream_copied_data_free
        - i_stream_create_from_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-data.c:54,12'
          Dst:             i_malloc
        - Src:             'istream-data.c:55,3'
          Dst:             i_memcpy
        - Src:             'istream-data.c:57,11'
          Dst:             i_stream_create_from_data
        - Src:             'istream-data.c:59,3'
          Dst:             i_stream_add_destroy_callback
        - Src:             'istream-data.c:59,3'
          Dst:             i_stream_copied_data_free
    - functionName:    i_stream_create_from_data
      functionSourceFile: '/src/dovecot/src/lib/istream-data.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          71
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create
        - i_stream_set_name
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-data.c:23,11'
          Dst:             malloc_multiply_check
        - Src:             'istream-data.c:23,11'
          Dst:             p_malloc
        - Src:             'istream-data.c:34,2'
          Dst:             i_stream_create
        - Src:             'istream-data.c:37,2'
          Dst:             i_stream_set_name
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_stream_data_read
      functionSourceFile: '/src/dovecot/src/lib/istream-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 9
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_data_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_set_used_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    timeval_sub_usecs
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:52,2'
          Dst:             i_panic
    - functionName:    io_loop_timeouts_update
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - priorityq_count
        - priorityq_items
        - timeval_add_usecs
        - timeval_sub_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:602,10'
          Dst:             priorityq_count
        - Src:             'ioloop.c:603,10'
          Dst:             priorityq_items
        - Src:             'ioloop.c:614,4'
          Dst:             timeval_add_usecs
        - Src:             'ioloop.c:616,4'
          Dst:             timeval_sub_usecs
    - functionName:    timeval_add_usecs
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:40,2'
          Dst:             i_panic
    - functionName:    ioloop_add_wait_time
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:633,9'
          Dst:             timeval_diff_usecs
    - functionName:    io_loops_timeouts_update
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_timeouts_update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:625,3'
          Dst:             io_loop_timeouts_update
    - functionName:    timeval_add_msecs
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          49
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_get_wait_time
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          265
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - i_gettimeofday
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:461,3'
          Dst:             i_gettimeofday
        - Src:             'ioloop.c:465,2'
          Dst:             i_panic
        - Src:             'ioloop.c:466,2'
          Dst:             i_panic
        - Src:             'ioloop.c:492,2'
          Dst:             i_panic
    - functionName:    io_file_unlink
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_get_active_global_root
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_wait_timer_get_usecs
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_wait_timer_move
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1366
      functionLinenumberEnd: 1367
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_wait_timer_move_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1367,9'
          Dst:             io_wait_timer_move_to
    - functionName:    io_wait_timer_move_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1362
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          127
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_wait_timer_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_wait_timer_add_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1349,9'
          Dst:             io_wait_timer_add_to
    - functionName:    io_wait_timer_add_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1342
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1337,10'
          Dst:             malloc_multiply_check
        - Src:             'ioloop.c:1337,10'
          Dst:             p_malloc
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    io_loop_find_fd_conditions
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1327
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1321,2'
          Dst:             i_panic
    - functionName:    io_loop_get_wait_usecs
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1313
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_is_empty
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1305
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - priorityq_count
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1307,3'
          Dst:             priorityq_count
        - Src:             'ioloop.c:1308,3'
          Dst:             array_count_i
    - functionName:    io_loop_have_immediate_timeouts
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1301
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_get_wait_time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1301,9'
          Dst:             io_loop_get_wait_time
    - functionName:    io_loop_get_wait_time
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          152
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_gettimeofday
        - i_panic
        - priorityq_peek
        - time_max_safe_value
        - timeout_get_wait_time
        - timeval_add_msecs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:503,9'
          Dst:             priorityq_peek
        - Src:             'ioloop.c:514,34'
          Dst:             time_max_safe_value
        - Src:             'ioloop.c:520,3'
          Dst:             i_gettimeofday
        - Src:             'ioloop.c:526,11'
          Dst:             timeout_get_wait_time
        - Src:             'ioloop.c:529,2'
          Dst:             timeval_add_msecs
        - Src:             'ioloop.c:536,2'
          Dst:             i_panic
    - functionName:    io_loop_have_ios
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1294
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_move_timeout
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_move_timeout_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1289,9'
          Dst:             io_loop_move_timeout_to
    - functionName:    io_loop_move_timeout_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - timeout_copy
        - timeout_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1282,11'
          Dst:             timeout_copy
        - Src:             'ioloop.c:1283,2'
          Dst:             timeout_remove
    - functionName:    timeout_copy
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          117
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - i_panic
        - priorityq_add
        - timeout_add_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:378,11'
          Dst:             timeout_add_common
        - Src:             'ioloop.c:386,3'
          Dst:             priorityq_add
        - Src:             'ioloop.c:388,3'
          Dst:             i_panic
        - Src:             'ioloop.c:389,3'
          Dst:             array_append_i
    - functionName:    timeout_remove
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
        - priorityq_remove
        - timeout_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:414,3'
          Dst:             priorityq_remove
        - Src:             'ioloop.c:418,8'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'ioloop.c:419,4'
          Dst:             i_unreached
        - Src:             'ioloop.c:420,3'
          Dst:             array_delete_i
        - Src:             'ioloop.c:422,2'
          Dst:             timeout_free
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    timeout_free
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_context_unref
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:398,3'
          Dst:             io_loop_context_unref
        - Src:             'ioloop.c:399,2'
          Dst:             p_free_internal
    - functionName:    io_loop_context_unref
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - array_free_i
        - i_panic
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1070,2'
          Dst:             i_panic
        - Src:             'ioloop.c:1075,2'
          Dst:             i_panic
        - Src:             'ioloop.c:1077,2'
          Dst:             array_free_i
        - Src:             'ioloop.c:1078,2'
          Dst:             array_free_i
        - Src:             'ioloop.c:1079,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    timeout_add_common
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_context_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:269,12'
          Dst:             malloc_multiply_check
        - Src:             'ioloop.c:269,12'
          Dst:             p_malloc
        - Src:             'ioloop.c:280,3'
          Dst:             io_loop_context_ref
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    io_loop_context_ref
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1059,2'
          Dst:             i_panic
    - functionName:    io_loop_move_io
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_loop_move_io_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1271,9'
          Dst:             io_loop_move_io_to
    - functionName:    io_loop_move_io_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1237
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          150
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_ref
        - i_stream_set_io
        - io_add_file
        - io_remove
        - io_set_pending
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1244,2'
          Dst:             i_panic
        - Src:             'ioloop.c:1250,16'
          Dst:             io_add_file
        - Src:             'ioloop.c:1257,3'
          Dst:             i_stream_ref
        - Src:             'ioloop.c:1260,3'
          Dst:             io_set_pending
        - Src:             'ioloop.c:1261,2'
          Dst:             io_remove
        - Src:             'ioloop.c:1264,3'
          Dst:             i_stream_set_io
    - functionName:    io_add_file
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          210
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - io_loop_context_ref
        - io_loop_handle_add
        - io_loop_initialize_handler
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:56,2'
          Dst:             i_panic
        - Src:             'ioloop.c:57,2'
          Dst:             i_panic
        - Src:             'ioloop.c:59,7'
          Dst:             malloc_multiply_check
        - Src:             'ioloop.c:59,7'
          Dst:             p_malloc
        - Src:             'ioloop.c:71,3'
          Dst:             io_loop_context_ref
        - Src:             'ioloop.c:75,3'
          Dst:             io_loop_initialize_handler
        - Src:             'ioloop.c:77,3'
          Dst:             io_loop_handle_add
    - functionName:    io_set_pending
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:222,2'
          Dst:             i_panic
    - functionName:    io_remove
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_remove_full
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:207,2'
          Dst:             io_remove_full
    - functionName:    io_remove_full
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          163
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_unref
        - i_stream_unset_io
        - io_file_unlink
        - io_loop_context_unref
        - io_loop_handle_remove
        - io_loop_notify_remove
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:162,2'
          Dst:             i_panic
        - Src:             'ioloop.c:171,3'
          Dst:             i_panic
        - Src:             'ioloop.c:176,3'
          Dst:             io_loop_context_unref
        - Src:             'ioloop.c:179,3'
          Dst:             io_loop_notify_remove
        - Src:             'ioloop.c:186,4'
          Dst:             i_stream_unset_io
        - Src:             'ioloop.c:189,3'
          Dst:             io_file_unlink
        - Src:             'ioloop.c:191,4'
          Dst:             io_loop_handle_remove
        - Src:             'ioloop.c:193,4'
          Dst:             p_free_internal
        - Src:             'ioloop.c:198,3'
          Dst:             i_stream_unref
    - functionName:    io_loop_initialize_handler
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - io_loop_handler_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:45,2'
          Dst:             io_loop_handler_init
    - functionName:    io_loop_get_current_context
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1232
      functionLinenumberEnd: 1233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_context_switch
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - io_loop_context_activate
        - io_loop_context_deactivate
        - io_loop_context_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1223,3'
          Dst:             io_loop_context_deactivate
        - Src:             'ioloop.c:1226,4'
          Dst:             io_loop_context_unref
        - Src:             'ioloop.c:1228,2'
          Dst:             io_loop_context_activate
    - functionName:    io_loop_context_deactivate
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_get_modifiable_data
        - i_panic
        - io_loop_context_pop_global_events
        - io_loop_context_remove_deleted_callbacks
        - io_loop_context_unref
        - t_pop
        - t_push
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1199,2'
          Dst:             i_panic
        - Src:             'ioloop.c:1201,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ioloop.c:1206,32'
          Dst:             t_push
        - Src:             'ioloop.c:1208,6'
          Dst:             t_pop
        - Src:             'ioloop.c:1208,6'
          Dst:             i_panic
        - Src:             'ioloop.c:1213,2'
          Dst:             io_loop_context_pop_global_events
        - Src:             'ioloop.c:1214,2'
          Dst:             io_loop_context_remove_deleted_callbacks
        - Src:             'ioloop.c:1215,2'
          Dst:             io_loop_context_unref
    - functionName:    io_loop_context_activate
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          140
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_get_modifiable_data
        - i_panic
        - io_loop_context_push_global_events
        - io_loop_context_ref
        - t_pop
        - t_push
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1181,2'
          Dst:             i_panic
        - Src:             'ioloop.c:1184,2'
          Dst:             io_loop_context_push_global_events
        - Src:             'ioloop.c:1185,2'
          Dst:             io_loop_context_ref
        - Src:             'ioloop.c:1186,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ioloop.c:1187,3'
          Dst:             i_panic
        - Src:             'ioloop.c:1188,29'
          Dst:             t_push
        - Src:             'ioloop.c:1190,5'
          Dst:             t_pop
        - Src:             'ioloop.c:1190,5'
          Dst:             i_panic
    - functionName:    io_loop_context_push_global_events
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_clear_i
        - array_get_i
        - array_is_created_i
        - event_get_global
        - event_push_global
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1140,27'
          Dst:             event_get_global
        - Src:             'ioloop.c:1142,7'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:1146,11'
          Dst:             array_get_i
        - Src:             'ioloop.c:1153,3'
          Dst:             event_push_global
        - Src:             'ioloop.c:1154,2'
          Dst:             array_clear_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_context_pop_global_events
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - event_get_global
        - event_pop_global
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1167,18'
          Dst:             event_get_global
        - Src:             'ioloop.c:1168,3'
          Dst:             i_panic
        - Src:             'ioloop.c:1169,8'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:1170,4'
          Dst:             array_create_i
        - Src:             'ioloop.c:1171,3'
          Dst:             array_append_i
        - Src:             'ioloop.c:1172,3'
          Dst:             event_pop_global
    - functionName:    io_loop_context_remove_deleted_callbacks
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_get_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1124,8'
          Dst:             array_get_i
        - Src:             'ioloop.c:1129,4'
          Dst:             array_delete_i
        - Src:             'ioloop.c:1130,10'
          Dst:             array_get_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    io_loop_context_remove_callbacks
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1101
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_get_modifiable_data
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1104,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'ioloop.c:1115,2'
          Dst:             i_panic
    - functionName:    io_loop_context_add_callbacks
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1095
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1094,2'
          Dst:             array_append_i
    - functionName:    io_loop_context_new
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1050,8'
          Dst:             malloc_multiply_check
        - Src:             'ioloop.c:1050,8'
          Dst:             p_malloc
        - Src:             'ioloop.c:1053,2'
          Dst:             array_create_i
    - functionName:    io_loop_remove_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1038
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1041,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'ioloop.c:1042,3'
          Dst:             i_unreached
        - Src:             'ioloop.c:1043,2'
          Dst:             array_delete_i
    - functionName:    io_destroy_callbacks_free
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:982,2'
          Dst:             array_free_i
    - functionName:    io_loop_add_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1035
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - io_destroy_callbacks_free
        - lib_atexit_priority
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1030,7'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:1031,3'
          Dst:             array_create_i
        - Src:             'ioloop.c:1032,3'
          Dst:             lib_atexit_priority
        - Src:             'ioloop.c:1032,3'
          Dst:             io_destroy_callbacks_free
        - Src:             'ioloop.c:1034,2'
          Dst:             array_append_i
    - functionName:    io_loop_remove_switch_callback
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1023,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'ioloop.c:1024,3'
          Dst:             i_unreached
        - Src:             'ioloop.c:1025,2'
          Dst:             array_delete_i
    - functionName:    io_switch_callbacks_free
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:977,2'
          Dst:             array_free_i
    - functionName:    io_loop_add_switch_callback
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - io_switch_callbacks_free
        - lib_atexit_priority
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1012,7'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:1013,3'
          Dst:             array_create_i
        - Src:             'ioloop.c:1014,3'
          Dst:             lib_atexit_priority
        - Src:             'ioloop.c:1014,3'
          Dst:             io_switch_callbacks_free
        - Src:             'ioloop.c:1016,2'
          Dst:             array_append_i
    - functionName:    io_loop_get_root
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_set_time_moved_callback
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_wait_timer_remove
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 1371
      functionLinenumberEnd: 1377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:1376,2'
          Dst:             p_free_internal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    io_loop_destroy
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          439
      EdgeCount:       85
      CyclomaticComplexity: 15
      functionsReached:
        - array_free_i
        - array_is_created_i
        - backtrace_get
        - i_memcpy
        - i_panic
        - i_warning
        - io_loop_context_unref
        - io_loop_handler_deinit
        - io_loop_notify_handler_deinit
        - io_loop_set_current
        - io_remove
        - io_wait_timer_remove
        - p_free_internal
        - priorityq_deinit
        - priorityq_pop
        - t_pop
        - t_push
        - t_strdup_printf
        - timeout_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:879,9'
          Dst:             i_panic
        - Src:             'ioloop.c:880,6'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:882,3'
          Dst:             i_memcpy
        - Src:             'ioloop.c:882,55'
          Dst:             t_push
        - Src:             'ioloop.c:884,5'
          Dst:             t_pop
        - Src:             'ioloop.c:884,5'
          Dst:             i_panic
        - Src:             'ioloop.c:887,2'
          Dst:             io_loop_set_current
        - Src:             'ioloop.c:890,3'
          Dst:             io_loop_notify_handler_deinit
        - Src:             'ioloop.c:895,23'
          Dst:             t_strdup_printf
        - Src:             'ioloop.c:902,4'
          Dst:             i_panic
        - Src:             'ioloop.c:904,4'
          Dst:             i_warning
        - Src:             'ioloop.c:905,3'
          Dst:             io_remove
        - Src:             'ioloop.c:908,2'
          Dst:             i_panic
        - Src:             'ioloop.c:910,2'
          Dst:             i_memcpy
        - Src:             'ioloop.c:911,23'
          Dst:             t_strdup_printf
        - Src:             'ioloop.c:917,4'
          Dst:             i_panic
        - Src:             'ioloop.c:919,4'
          Dst:             i_warning
        - Src:             'ioloop.c:920,3'
          Dst:             timeout_free
        - Src:             'ioloop.c:923,2'
          Dst:             array_free_i
        - Src:             'ioloop.c:925,17'
          Dst:             priorityq_pop
        - Src:             'ioloop.c:927,23'
          Dst:             t_strdup_printf
        - Src:             'ioloop.c:933,4'
          Dst:             i_panic
        - Src:             'ioloop.c:935,4'
          Dst:             i_warning
        - Src:             'ioloop.c:936,3'
          Dst:             timeout_free
        - Src:             'ioloop.c:939,2'
          Dst:             priorityq_deinit
        - Src:             'ioloop.c:943,23'
          Dst:             t_strdup_printf
        - Src:             'ioloop.c:949,4'
          Dst:             i_panic
        - Src:             'ioloop.c:951,4'
          Dst:             i_warning
        - Src:             'ioloop.c:952,3'
          Dst:             io_wait_timer_remove
        - Src:             'ioloop.c:958,7'
          Dst:             backtrace_get
        - Src:             'ioloop.c:959,4'
          Dst:             i_warning
        - Src:             'ioloop.c:963,3'
          Dst:             io_loop_handler_deinit
        - Src:             'ioloop.c:965,3'
          Dst:             io_loop_context_unref
        - Src:             'ioloop.c:966,2'
          Dst:             p_free_internal
    - functionName:    io_loop_set_current
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:994,6'
          Dst:             array_is_created_i
        - Src:             'ioloop.c:995,3'
          Dst:             i_memcpy
        - Src:             'ioloop.c:995,54'
          Dst:             t_push
        - Src:             'ioloop.c:997,5'
          Dst:             t_pop
        - Src:             'ioloop.c:997,5'
          Dst:             i_panic
    - functionName:    io_loop_default_time_moved
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_warning
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:570,19'
          Dst:             timeval_diff_usecs
        - Src:             'ioloop.c:572,3'
          Dst:             i_warning
    - functionName:    timeout_cmp
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:563,9'
          Dst:             timeval_cmp
    - functionName:    io_loop_create
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - getenv
        - i_gettimeofday
        - io_loop_set_current
        - malloc_multiply_check
        - p_malloc
        - priorityq_init
        - timeout_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:849,19'
          Dst:             getenv
        - Src:             'ioloop.c:853,2'
          Dst:             i_gettimeofday
        - Src:             'ioloop.c:856,18'
          Dst:             malloc_multiply_check
        - Src:             'ioloop.c:856,18'
          Dst:             p_malloc
        - Src:             'ioloop.c:857,21'
          Dst:             priorityq_init
        - Src:             'ioloop.c:857,21'
          Dst:             timeout_cmp
        - Src:             'ioloop.c:858,2'
          Dst:             array_create_i
        - Src:             'ioloop.c:865,9'
          Dst:             io_loop_set_current
    - functionName:    io_loop_time_refresh
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 841
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_gettimeofday
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:839,2'
          Dst:             i_gettimeofday
    - functionName:    io_loop_is_running
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_set_max_fd_count
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_set_running
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_stop_delayed
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_stop
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_call_pending
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - io_loop_call_io
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:789,5'
          Dst:             io_loop_call_io
    - functionName:    io_loop_call_io
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - io_loop_context_activate
        - io_loop_context_deactivate
        - t_pop
        - t_push_named
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:740,3'
          Dst:             i_panic
        - Src:             'ioloop.c:746,3'
          Dst:             io_loop_context_activate
        - Src:             'ioloop.c:747,9'
          Dst:             t_push_named
        - Src:             'ioloop.c:750,7'
          Dst:             t_pop
        - Src:             'ioloop.c:751,3'
          Dst:             i_panic
        - Src:             'ioloop.c:755,3'
          Dst:             io_loop_context_deactivate
        - Src:             'ioloop.c:756,2'
          Dst:             i_panic
    - functionName:    io_loop_timeouts_start_new
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - array_clear_i
        - array_count_i
        - i_memcpy
        - i_panic
        - io_loop_time_refresh
        - priorityq_add
        - timeout_update_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:581,6'
          Dst:             array_count_i
        - Src:             'ioloop.c:584,2'
          Dst:             io_loop_time_refresh
        - Src:             'ioloop.c:586,2'
          Dst:             i_memcpy
        - Src:             'ioloop.c:587,3'
          Dst:             i_panic
        - Src:             'ioloop.c:589,3'
          Dst:             i_panic
        - Src:             'ioloop.c:590,3'
          Dst:             i_panic
        - Src:             'ioloop.c:591,3'
          Dst:             timeout_update_next
        - Src:             'ioloop.c:592,3'
          Dst:             priorityq_add
        - Src:             'ioloop.c:594,2'
          Dst:             array_clear_i
    - functionName:    timeout_update_next
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          104
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_gettimeofday
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:243,3'
          Dst:             i_gettimeofday
    - functionName:    io_loop_handler_run
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - io_loop_call_pending
        - io_loop_handler_run_internal
        - io_loop_stop
        - io_loop_timeouts_start_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:799,2'
          Dst:             i_panic
        - Src:             'ioloop.c:801,2'
          Dst:             io_loop_timeouts_start_new
        - Src:             'ioloop.c:803,2'
          Dst:             io_loop_handler_run_internal
        - Src:             'ioloop.c:804,2'
          Dst:             io_loop_call_pending
        - Src:             'ioloop.c:806,3'
          Dst:             io_loop_stop
        - Src:             'ioloop.c:808,2'
          Dst:             i_panic
    - functionName:    io_loop_run
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - io_loop_context_deactivate
        - io_loop_handler_run
        - io_loop_initialize_handler
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:762,3'
          Dst:             io_loop_initialize_handler
        - Src:             'ioloop.c:765,3'
          Dst:             io_loop_context_deactivate
        - Src:             'ioloop.c:769,2'
          Dst:             i_panic
        - Src:             'ioloop.c:774,3'
          Dst:             io_loop_handler_run
    - functionName:    io_loop_handle_timeouts_real
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          269
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - i_gettimeofday
        - i_panic
        - io_loop_context_activate
        - io_loop_context_deactivate
        - io_loops_timeouts_update
        - ioloop_add_wait_time
        - priorityq_peek
        - priorityq_remove
        - t_pop
        - t_push_named
        - timeout_get_wait_time
        - timeout_reset_timeval
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:654,2'
          Dst:             i_gettimeofday
        - Src:             'ioloop.c:656,15'
          Dst:             timeval_diff_usecs
        - Src:             'ioloop.c:659,3'
          Dst:             io_loops_timeouts_update
        - Src:             'ioloop.c:661,3'
          Dst:             i_panic
        - Src:             'ioloop.c:663,3'
          Dst:             i_gettimeofday
        - Src:             'ioloop.c:669,16'
          Dst:             timeval_diff_usecs
        - Src:             'ioloop.c:672,4'
          Dst:             io_loops_timeouts_update
        - Src:             'ioloop.c:676,4'
          Dst:             i_panic
        - Src:             'ioloop.c:678,3'
          Dst:             ioloop_add_wait_time
        - Src:             'ioloop.c:685,17'
          Dst:             priorityq_peek
        - Src:             'ioloop.c:690,7'
          Dst:             timeout_get_wait_time
        - Src:             'ioloop.c:695,4'
          Dst:             priorityq_remove
        - Src:             'ioloop.c:698,4'
          Dst:             timeout_reset_timeval
        - Src:             'ioloop.c:702,4'
          Dst:             io_loop_context_activate
        - Src:             'ioloop.c:703,10'
          Dst:             t_push_named
        - Src:             'ioloop.c:706,8'
          Dst:             t_pop
        - Src:             'ioloop.c:707,4'
          Dst:             i_panic
        - Src:             'ioloop.c:711,4'
          Dst:             io_loop_context_deactivate
        - Src:             'ioloop.c:712,3'
          Dst:             i_panic
    - functionName:    timeout_reset_timeval
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - priorityq_add
        - priorityq_remove
        - timeout_update_next
        - timeval_add_usecs
        - timeval_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:431,2'
          Dst:             timeout_update_next
        - Src:             'ioloop.c:441,24'
          Dst:             timeval_cmp
        - Src:             'ioloop.c:443,3'
          Dst:             timeval_add_usecs
        - Src:             'ioloop.c:445,2'
          Dst:             priorityq_remove
        - Src:             'ioloop.c:446,2'
          Dst:             priorityq_add
    - functionName:    io_loop_handle_timeouts
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - data_stack_free_unused
        - i_panic
        - io_loop_handle_timeouts_real
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:718,2'
          Dst:             t_push
        - Src:             'ioloop.c:719,3'
          Dst:             io_loop_handle_timeouts_real
        - Src:             'ioloop.c:720,4'
          Dst:             t_pop
        - Src:             'ioloop.c:720,4'
          Dst:             i_panic
        - Src:             'ioloop.c:729,4'
          Dst:             data_stack_free_unused
    - functionName:    io_loop_have_waitable_io_files
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_run_get_wait_time
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - io_loop_get_wait_time
        - io_loop_have_waitable_io_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:553,14'
          Dst:             io_loop_get_wait_time
        - Src:             'ioloop.c:554,20'
          Dst:             io_loop_have_waitable_io_files
        - Src:             'ioloop.c:555,3'
          Dst:             i_panic
    - functionName:    timeout_reset
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - timeout_reset_timeval
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:451,2'
          Dst:             i_panic
        - Src:             'ioloop.c:452,2'
          Dst:             timeout_reset_timeval
    - functionName:    timeout_add_absolute
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_add_absolute_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:368,9'
          Dst:             timeout_add_absolute_to
    - functionName:    timeout_add_absolute_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - priorityq_add
        - timeout_add_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:352,12'
          Dst:             timeout_add_common
        - Src:             'ioloop.c:357,2'
          Dst:             priorityq_add
    - functionName:    timeout_add_short
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:339,9'
          Dst:             timeout_add
    - functionName:    timeout_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_add_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:317,9'
          Dst:             timeout_add_to
    - functionName:    timeout_add_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - priorityq_add
        - timeout_add_common
        - timeout_update_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:294,12'
          Dst:             timeout_add_common
        - Src:             'ioloop.c:300,3'
          Dst:             array_append_i
        - Src:             'ioloop.c:305,3'
          Dst:             timeout_update_next
        - Src:             'ioloop.c:307,3'
          Dst:             priorityq_add
    - functionName:    timeout_add_short_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_add_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:328,9'
          Dst:             timeout_add_to
    - functionName:    io_set_never_wait_alone
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_is_pending
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_remove_closed
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - io_remove_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:215,2'
          Dst:             i_panic
        - Src:             'ioloop.c:217,2'
          Dst:             io_remove_full
    - functionName:    io_add_istream
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_add_istream_to
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:137,9'
          Dst:             io_add_istream_to
    - functionName:    io_add_istream_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_get_fd
        - i_stream_ref
        - i_stream_set_io
        - io_add_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:124,27'
          Dst:             i_stream_get_fd
        - Src:             'ioloop.c:124,7'
          Dst:             io_add_file
        - Src:             'ioloop.c:127,2'
          Dst:             i_stream_ref
        - Src:             'ioloop.c:128,2'
          Dst:             i_stream_set_io
    - functionName:    io_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_add_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:111,9'
          Dst:             io_add_to
    - functionName:    io_add_to
      functionSourceFile: '/src/dovecot/src/lib/ioloop.c'
      linkageType:     externalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - io_add_file
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop.c:98,2'
          Dst:             i_panic
        - Src:             'ioloop.c:99,7'
          Dst:             io_add_file
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    inotify_input_more
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          172
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_error
        - i_fatal
        - i_gettimeofday
        - i_panic
        - io_loop_call_io
        - io_notify_fd_find
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:45,8'
          Dst:             read
        - Src:             'ioloop-notify-inotify.c:47,19'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:51,3'
          Dst:             i_fatal
        - Src:             'ioloop-notify-inotify.c:54,2'
          Dst:             i_gettimeofday
        - Src:             'ioloop-notify-inotify.c:62,3'
          Dst:             i_panic
        - Src:             'ioloop-notify-inotify.c:65,8'
          Dst:             io_notify_fd_find
        - Src:             'ioloop-notify-inotify.c:72,4'
          Dst:             io_loop_call_io
        - Src:             'ioloop-notify-inotify.c:76,3'
          Dst:             i_error
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ioloop_inotify_user_limit_exceeded
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dec2str
        - geteuid
        - i_getpwuid
        - i_warning
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:157,14'
          Dst:             geteuid
        - Src:             'ioloop-notify-inotify.c:159,6'
          Dst:             i_getpwuid
        - Src:             'ioloop-notify-inotify.c:160,36'
          Dst:             dec2str
        - Src:             'ioloop-notify-inotify.c:160,10'
          Dst:             t_strdup_printf
        - Src:             'ioloop-notify-inotify.c:163,12'
          Dst:             dec2str
        - Src:             'ioloop-notify-inotify.c:162,10'
          Dst:             t_strdup_printf
        - Src:             'ioloop-notify-inotify.c:165,2'
          Dst:             i_warning
    - functionName:    io_loop_extract_notify_fd
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_error
        - inotify_init
        - io_remove
        - ioloop_inotify_user_limit_exceeded
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:221,19'
          Dst:             inotify_init
        - Src:             'ioloop-notify-inotify.c:223,7'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:224,4'
          Dst:             i_error
        - Src:             'ioloop-notify-inotify.c:226,4'
          Dst:             ioloop_inotify_user_limit_exceeded
        - Src:             'ioloop-notify-inotify.c:231,2'
          Dst:             io_remove
    - functionName:    inotify_init
      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:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_notify_handler_deinit
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_close_fd_path
        - i_warning
        - io_remove
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:200,3'
          Dst:             i_warning
        - Src:             'ioloop-notify-inotify.c:204,3'
          Dst:             io_remove
        - Src:             'ioloop-notify-inotify.c:207,2'
          Dst:             i_close_fd_path
        - Src:             'ioloop-notify-inotify.c:208,2'
          Dst:             p_free_internal
    - functionName:    io_loop_notify_remove
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_error
        - inotify_rm_watch
        - io_notify_fd_free
        - io_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:142,7'
          Dst:             inotify_rm_watch
        - Src:             'ioloop-notify-inotify.c:143,7'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:144,4'
          Dst:             i_error
        - Src:             'ioloop-notify-inotify.c:147,2'
          Dst:             io_notify_fd_free
        - Src:             'ioloop-notify-inotify.c:150,3'
          Dst:             io_remove
    - functionName:    inotify_rm_watch
      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:    inotify_input
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - inotify_input_more
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:82,9'
          Dst:             inotify_input_more
    - functionName:    io_loop_notify_handler_init
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fd_close_on_exec
        - fd_set_nonblock
        - i_error
        - inotify_init
        - ioloop_inotify_user_limit_exceeded
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:175,3'
          Dst:             malloc_multiply_check
        - Src:             'ioloop-notify-inotify.c:175,3'
          Dst:             p_malloc
        - Src:             'ioloop-notify-inotify.c:177,20'
          Dst:             inotify_init
        - Src:             'ioloop-notify-inotify.c:179,7'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:180,4'
          Dst:             i_error
        - Src:             'ioloop-notify-inotify.c:182,4'
          Dst:             ioloop_inotify_user_limit_exceeded
        - Src:             'ioloop-notify-inotify.c:185,3'
          Dst:             fd_close_on_exec
        - Src:             'ioloop-notify-inotify.c:186,3'
          Dst:             fd_set_nonblock
    - functionName:    io_add_notify
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-inotify.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          148
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - i_error
        - i_warning
        - inotify_add_watch
        - inotify_input
        - io_add
        - io_loop_notify_handler_init
        - io_notify_fd_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-inotify.c:98,9'
          Dst:             io_loop_notify_handler_init
        - Src:             'ioloop-notify-inotify.c:102,7'
          Dst:             inotify_add_watch
        - Src:             'ioloop-notify-inotify.c:108,7'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:108,26'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:111,7'
          Dst:             __errno_location
        - Src:             'ioloop-notify-inotify.c:112,4'
          Dst:             i_error
        - Src:             'ioloop-notify-inotify.c:114,4'
          Dst:             i_warning
        - Src:             'ioloop-notify-inotify.c:123,19'
          Dst:             io_add
        - Src:             'ioloop-notify-inotify.c:123,19'
          Dst:             inotify_input
        - Src:             'ioloop-notify-inotify.c:127,10'
          Dst:             io_notify_fd_add
    - functionName:    inotify_add_watch
      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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    io_loop_handler_run_internal
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     externalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          296
      EdgeCount:       65
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - array_get_modifiable_i
        - array_idx_i
        - epoll_wait
        - i_fatal
        - i_panic
        - i_sleep_intr_msecs
        - io_loop_call_io
        - io_loop_handle_timeouts
        - io_loop_run_get_wait_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-epoll.c:176,2'
          Dst:             i_panic
        - Src:             'ioloop-epoll.c:179,10'
          Dst:             io_loop_run_get_wait_time
        - Src:             'ioloop-epoll.c:181,11'
          Dst:             array_get_modifiable_i
        - Src:             'ioloop-epoll.c:183,9'
          Dst:             epoll_wait
        - Src:             'ioloop-epoll.c:184,18'
          Dst:             __errno_location
        - Src:             'ioloop-epoll.c:185,4'
          Dst:             i_fatal
        - Src:             'ioloop-epoll.c:189,3'
          Dst:             i_panic
        - Src:             'ioloop-epoll.c:190,3'
          Dst:             i_sleep_intr_msecs
        - Src:             'ioloop-epoll.c:195,9'
          Dst:             io_loop_handle_timeouts
        - Src:             'ioloop-epoll.c:203,11'
          Dst:             array_idx_i
        - Src:             'ioloop-epoll.c:222,5'
          Dst:             io_loop_call_io
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - buffer_get_modifiable_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:307,13'
          Dst:             array_count_i
        - Src:             './array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    epoll_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_loop_handle_remove
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     externalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - array_idx_modifiable_i
        - epoll_ctl
        - epoll_event_mask
        - i_error
        - i_panic
        - ioloop_iolist_del
        - p_free_internal
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-epoll.c:135,9'
          Dst:             array_idx_modifiable_i
        - Src:             'ioloop-epoll.c:136,9'
          Dst:             ioloop_iolist_del
        - Src:             'ioloop-epoll.c:141,18'
          Dst:             epoll_event_mask
        - Src:             'ioloop-epoll.c:145,7'
          Dst:             epoll_ctl
        - Src:             'ioloop-epoll.c:146,25'
          Dst:             t_strdup_printf
        - Src:             'ioloop-epoll.c:149,8'
          Dst:             __errno_location
        - Src:             'ioloop-epoll.c:149,27'
          Dst:             __errno_location
        - Src:             'ioloop-epoll.c:150,5'
          Dst:             i_panic
        - Src:             'ioloop-epoll.c:152,5'
          Dst:             i_error
        - Src:             'ioloop-epoll.c:161,2'
          Dst:             p_free_internal
    - functionName:    epoll_event_mask
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    epoll_ctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    io_loop_handle_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          154
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - array_append_space_i
        - array_idx_get_space_i
        - epoll_ctl
        - epoll_event_mask
        - i_panic
        - ioloop_iolist_add
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-epoll.c:94,9'
          Dst:             array_idx_get_space_i
        - Src:             'ioloop-epoll.c:96,11'
          Dst:             malloc_multiply_check
        - Src:             'ioloop-epoll.c:96,11'
          Dst:             p_malloc
        - Src:             'ioloop-epoll.c:98,10'
          Dst:             ioloop_iolist_add
        - Src:             'ioloop-epoll.c:102,17'
          Dst:             epoll_event_mask
        - Src:             'ioloop-epoll.c:106,6'
          Dst:             epoll_ctl
        - Src:             'ioloop-epoll.c:107,7'
          Dst:             __errno_location
        - Src:             'ioloop-epoll.c:108,4'
          Dst:             i_panic
        - Src:             'ioloop-epoll.c:113,3'
          Dst:             i_panic
        - Src:             'ioloop-epoll.c:123,4'
          Dst:             array_append_space_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    io_loop_handler_deinit
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_get_modifiable_i
        - close
        - i_error
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-epoll.c:49,9'
          Dst:             array_get_modifiable_i
        - Src:             'ioloop-epoll.c:51,3'
          Dst:             p_free_internal
        - Src:             'ioloop-epoll.c:53,6'
          Dst:             close
        - Src:             'ioloop-epoll.c:54,3'
          Dst:             i_error
        - Src:             'ioloop-epoll.c:55,2'
          Dst:             array_free_i
        - Src:             'ioloop-epoll.c:56,2'
          Dst:             array_free_i
        - Src:             'ioloop-epoll.c:57,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    io_loop_handler_init
      functionSourceFile: '/src/dovecot/src/lib/ioloop-epoll.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - array_create_i
        - epoll_create
        - fd_close_on_exec
        - i_fatal
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-epoll.c:26,34'
          Dst:             malloc_multiply_check
        - Src:             'ioloop-epoll.c:26,34'
          Dst:             p_malloc
        - Src:             'ioloop-epoll.c:28,2'
          Dst:             array_create_i
        - Src:             'ioloop-epoll.c:29,2'
          Dst:             array_create_i
        - Src:             'ioloop-epoll.c:31,14'
          Dst:             epoll_create
        - Src:             'ioloop-epoll.c:33,7'
          Dst:             __errno_location
        - Src:             'ioloop-epoll.c:34,4'
          Dst:             i_fatal
        - Src:             'ioloop-epoll.c:36,4'
          Dst:             i_fatal
        - Src:             'ioloop-epoll.c:40,2'
          Dst:             fd_close_on_exec
    - functionName:    epoll_create
      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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    lib_deinit
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - data_stack_deinit
        - data_stack_deinit_event
        - event_filter_deinit
        - failures_deinit
        - hostpid_deinit
        - i_close_fd_path
        - i_panic
        - ipwd_deinit
        - lib_atexit_run
        - lib_event_deinit
        - process_title_deinit
        - random_deinit
        - restrict_access_deinit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:217,2'
          Dst:             i_panic
        - Src:             'lib.c:219,2'
          Dst:             lib_atexit_run
        - Src:             'lib.c:220,2'
          Dst:             ipwd_deinit
        - Src:             'lib.c:221,2'
          Dst:             hostpid_deinit
        - Src:             'lib.c:222,2'
          Dst:             event_filter_deinit
        - Src:             'lib.c:223,2'
          Dst:             data_stack_deinit_event
        - Src:             'lib.c:224,2'
          Dst:             lib_event_deinit
        - Src:             'lib.c:225,2'
          Dst:             restrict_access_deinit
        - Src:             'lib.c:226,2'
          Dst:             i_close_fd_path
        - Src:             'lib.c:227,2'
          Dst:             data_stack_deinit
        - Src:             'lib.c:228,2'
          Dst:             failures_deinit
        - Src:             'lib.c:229,2'
          Dst:             process_title_deinit
        - Src:             'lib.c:230,2'
          Dst:             random_deinit
    - functionName:    lib_atexit_run
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
        - array_sort_i
        - atexit_callback_priority_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:133,6'
          Dst:             array_is_created_i
        - Src:             'lib.c:134,3'
          Dst:             array_sort_i
        - Src:             'lib.c:134,3'
          Dst:             atexit_callback_priority_cmp
        - Src:             'lib.c:137,3'
          Dst:             array_free_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atexit_callback_priority_cmp
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    lib_is_initialized
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_atexit_handler
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - strlen
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:180,35'
          Dst:             strlen
        - Src:             'lib.c:180,7'
          Dst:             write
        - Src:             'lib.c:183,3'
          Dst:             abort
    - functionName:    lib_open_non_stdio_dev_null
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - dup
        - fd_close_on_exec
        - i_fatal
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:143,16'
          Dst:             open
        - Src:             'lib.c:145,3'
          Dst:             i_fatal
        - Src:             'lib.c:151,17'
          Dst:             dup
        - Src:             'lib.c:153,4'
          Dst:             i_fatal
        - Src:             'lib.c:156,2'
          Dst:             fd_close_on_exec
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_init
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - atexit
        - data_stack_init
        - event_filter_init
        - hostpid_init
        - i_panic
        - lib_atexit_handler
        - lib_event_init
        - lib_open_non_stdio_dev_null
        - lib_set_clean_exit
        - random_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:189,2'
          Dst:             i_panic
        - Src:             'lib.c:190,2'
          Dst:             random_init
        - Src:             'lib.c:191,2'
          Dst:             data_stack_init
        - Src:             'lib.c:192,2'
          Dst:             hostpid_init
        - Src:             'lib.c:193,2'
          Dst:             lib_open_non_stdio_dev_null
        - Src:             'lib.c:194,2'
          Dst:             lib_event_init
        - Src:             'lib.c:195,2'
          Dst:             event_filter_init
        - Src:             'lib.c:201,2'
          Dst:             lib_set_clean_exit
        - Src:             'lib.c:203,3'
          Dst:             atexit
        - Src:             'lib.c:203,3'
          Dst:             lib_atexit_handler
    - functionName:    lib_set_clean_exit
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atexit
      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:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    lib_atexit_priority
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_get_i
        - array_is_created_i
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:106,7'
          Dst:             array_is_created_i
        - Src:             'lib.c:107,3'
          Dst:             array_create_i
        - Src:             'lib.c:110,15'
          Dst:             array_get_i
        - Src:             'lib.c:113,5'
          Dst:             i_panic
        - Src:             'lib.c:118,7'
          Dst:             array_append_space_i
    - functionName:    lib_atexit
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lib_atexit_priority
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:97,2'
          Dst:             lib_atexit_priority
    - functionName:    i_getopt_reset
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_unlink_if_exists
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_error
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:73,6'
          Dst:             unlink
        - Src:             'lib.c:75,11'
          Dst:             __errno_location
        - Src:             'lib.c:78,3'
          Dst:             i_error
    - functionName:    unlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_unlink
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:61,6'
          Dst:             unlink
        - Src:             'lib.c:62,3'
          Dst:             i_error
    - functionName:    i_faccessat2
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - faccessat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:54,9'
          Dst:             faccessat
    - functionName:    faccessat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_exit
      functionSourceFile: '/src/dovecot/src/lib/lib.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - lib_set_clean_exit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib.c:166,2'
          Dst:             lib_set_clean_exit
        - Src:             'lib.c:167,2'
          Dst:             exit
    - functionName:    last_passthrough_event
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:102,2'
          Dst:             i_panic
    - functionName:    event_import_strlist
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          130
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_create_i
        - p_strdup
        - str_to_uint
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1531,6'
          Dst:             str_to_uint
        - Src:             'lib-event.c:1532,14'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1536,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1538,21'
          Dst:             p_strdup
        - Src:             'lib-event.c:1539,3'
          Dst:             array_append_i
        - Src:             'lib-event.c:1542,14'
          Dst:             t_strdup_printf
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_import_field
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          218
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - event_get_field
        - event_import_strlist
        - event_import_tv
        - i_unreached
        - net_addr2ip
        - null_strcmp
        - p_strdup
        - str_to_intmax
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:1566,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:1561,30'
          Dst:             event_get_field
        - Src:             'lib-event.c:1569,7'
          Dst:             str_to_intmax
        - Src:             'lib-event.c:1570,15'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1578,7'
          Dst:             null_strcmp
        - Src:             'lib-event.c:1583,22'
          Dst:             p_strdup
        - Src:             'lib-event.c:1587,8'
          Dst:             event_import_tv
        - Src:             'lib-event.c:1589,15'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1597,7'
          Dst:             net_addr2ip
        - Src:             'lib-event.c:1598,15'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1605,8'
          Dst:             event_import_strlist
        - Src:             'lib-event.c:1609,3'
          Dst:             i_unreached
    - functionName:    event_get_field
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1078
      functionLinenumberEnd: 1091
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - event_find_field_nonrecursive
        - event_set_changed
        - p_strdup
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1081,10'
          Dst:             event_find_field_nonrecursive
        - Src:             'lib-event.c:1083,8'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1084,4'
          Dst:             array_create_i
        - Src:             'lib-event.c:1085,11'
          Dst:             array_append_space_i
        - Src:             'lib-event.c:1086,16'
          Dst:             p_strdup
        - Src:             'lib-event.c:1090,2'
          Dst:             event_set_changed
    - functionName:    event_import_tv
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - str_to_time
        - str_to_uint
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1506,6'
          Dst:             str_to_time
        - Src:             'lib-event.c:1515,6'
          Dst:             str_to_uint
    - functionName:    event_find_field_nonrecursive
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - strcmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:983,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:986,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'lib-event.c:987,7'
          Dst:             strcmp
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    24
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    event_set_changed
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_category_add_to_array
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:846,2'
          Dst:             array_append_i
        - Src:             'lib-event.c:847,2'
          Dst:             array_append_i
    - functionName:    event_category_find_internal
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:827,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:828,7'
          Dst:             strcmp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    event_copy_parent_defaults
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          103
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    lib_event_deinit
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1954
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          161
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - array_free_i
        - event_log_deinit
        - event_unset_global_core_log_filter
        - event_unset_global_debug_log_filter
        - i_memcpy
        - i_warning
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1930,2'
          Dst:             event_log_deinit
        - Src:             'lib-event.c:1931,2'
          Dst:             event_unset_global_debug_log_filter
        - Src:             'lib-event.c:1932,2'
          Dst:             event_unset_global_core_log_filter
        - Src:             'lib-event.c:1934,3'
          Dst:             i_warning
        - Src:             'lib-event.c:1939,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:1940,3'
          Dst:             p_free_internal
        - Src:             'lib-event.c:1941,3'
          Dst:             p_free_internal
        - Src:             'lib-event.c:1945,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:1947,2'
          Dst:             array_free_i
        - Src:             'lib-event.c:1949,2'
          Dst:             array_free_i
        - Src:             'lib-event.c:1950,2'
          Dst:             array_free_i
        - Src:             'lib-event.c:1951,2'
          Dst:             array_free_i
        - Src:             'lib-event.c:1952,2'
          Dst:             array_free_i
        - Src:             'lib-event.c:1953,2'
          Dst:             array_free_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_event_init
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1906
      functionLinenumberEnd: 1921
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - event_log_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1912,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1913,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1914,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1917,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1919,2'
          Dst:             array_create_i
        - Src:             'lib-event.c:1920,2'
          Dst:             event_log_init
    - functionName:    event_enable_user_cpu_usecs
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1901
      functionLinenumberEnd: 1903
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_self_rusage
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1902,2'
          Dst:             get_self_rusage
    - functionName:    get_self_rusage
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - getrusage
        - i_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:90,6'
          Dst:             getrusage
        - Src:             'lib-event.c:91,3'
          Dst:             i_fatal
    - functionName:    getrusage
      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:    event_passthrough_event
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1873
      functionLinenumberEnd: 1876
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1874,24'
          Dst:             last_passthrough_event
    - functionName:    event_passthrough_clear_field
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 1869
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_field_clear
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1868,20'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1868,2'
          Dst:             event_field_clear
    - functionName:    event_field_clear
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1245,2'
          Dst:             event_add_str
    - functionName:    event_passthrough_set_append_log_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1752
      functionLinenumberEnd: 1754
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_append_log_prefix
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1753,30'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1753,2'
          Dst:             event_set_append_log_prefix
    - functionName:    event_passthrough_replace_log_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1759
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_replace_log_prefix
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1760,27'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1760,2'
          Dst:             event_replace_log_prefix
    - functionName:    event_passthrough_set_name
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_name
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1767,17'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1767,2'
          Dst:             event_set_name
    - functionName:    event_passthrough_set_source
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1774
      functionLinenumberEnd: 1777
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_source
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1775,19'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1775,2'
          Dst:             event_set_source
    - functionName:    event_passthrough_set_always_log_source
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1782
      functionLinenumberEnd: 1784
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_always_log_source
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1783,30'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1783,2'
          Dst:             event_set_always_log_source
    - functionName:    event_passthrough_add_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1789
      functionLinenumberEnd: 1791
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_categories
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1790,23'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1790,2'
          Dst:             event_add_categories
    - functionName:    event_passthrough_add_category
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1796
      functionLinenumberEnd: 1798
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_category
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1797,21'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1797,2'
          Dst:             event_add_category
    - functionName:    event_passthrough_add_fields
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_fields
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1804,19'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1804,2'
          Dst:             event_add_fields
    - functionName:    event_passthrough_add_str
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1810
      functionLinenumberEnd: 1812
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_str
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1811,16'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1811,2'
          Dst:             event_add_str
    - functionName:    event_passthrough_add_int
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_int
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1833,16'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1833,2'
          Dst:             event_add_int
    - functionName:    event_passthrough_add_int_nonzero
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1841
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_int_nonzero
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1840,24'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1840,2'
          Dst:             event_add_int_nonzero
    - functionName:    event_passthrough_add_timeval
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_timeval
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1847,20'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1847,2'
          Dst:             event_add_timeval
    - functionName:    event_passthrough_add_ip
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1853
      functionLinenumberEnd: 1855
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_ip
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1854,15'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1854,2'
          Dst:             event_add_ip
    - functionName:    event_passthrough_inc_int
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1860
      functionLinenumberEnd: 1862
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_inc_int
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1861,16'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1861,2'
          Dst:             event_inc_int
    - functionName:    event_passthrough_strlist_append
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1817
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_strlist_append
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1818,23'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1818,2'
          Dst:             event_strlist_append
    - functionName:    event_passthrough_strlist_replace
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1825
      functionLinenumberEnd: 1827
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_strlist_replace
        - last_passthrough_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1826,24'
          Dst:             last_passthrough_event
        - Src:             'lib-event.c:1826,2'
          Dst:             event_strlist_replace
    - functionName:    event_strlist_replace
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1138
      functionLinenumberEnd: 1144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - event_get_field
        - event_strlist_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1139,30'
          Dst:             event_get_field
        - Src:             'lib-event.c:1143,3'
          Dst:             event_strlist_append
    - functionName:    event_strlist_append
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - array_lsearch_i
        - event_get_field
        - i_strcmp_p
        - p_strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1117,30'
          Dst:             event_get_field
        - Src:             'lib-event.c:1120,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1122,3'
          Dst:             array_create_i
        - Src:             'lib-event.c:1129,20'
          Dst:             p_strdup
        - Src:             'lib-event.c:1130,6'
          Dst:             array_lsearch_i
        - Src:             'lib-event.c:1130,6'
          Dst:             i_strcmp_p
        - Src:             'lib-event.c:1131,3'
          Dst:             array_append_i
    - functionName:    event_inc_int
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_add_int
        - event_find_field_nonrecursive
        - event_set_changed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1183,10'
          Dst:             event_find_field_nonrecursive
        - Src:             'lib-event.c:1185,10'
          Dst:             event_add_int
        - Src:             'lib-event.c:1188,2'
          Dst:             event_set_changed
    - functionName:    event_add_int
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_get_field
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1164,10'
          Dst:             event_get_field
    - functionName:    event_add_ip
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1206
      functionLinenumberEnd: 1221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_field_clear
        - event_find_field_recursive
        - event_get_field
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1212,7'
          Dst:             event_find_field_recursive
        - Src:             'lib-event.c:1213,4'
          Dst:             event_field_clear
        - Src:             'lib-event.c:1217,10'
          Dst:             event_get_field
    - functionName:    event_find_field_recursive
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1012
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - event_find_field_nonrecursive
        - event_get_global
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:999,16'
          Dst:             event_find_field_nonrecursive
        - Src:             'lib-event.c:1005,10'
          Dst:             event_get_global
        - Src:             'lib-event.c:1007,16'
          Dst:             event_find_field_nonrecursive
    - functionName:    event_get_global
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_add_timeval
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_get_field
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1198,10'
          Dst:             event_get_field
    - functionName:    event_add_int_nonzero
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1174,10'
          Dst:             event_add_int
    - functionName:    event_add_str
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_find_field_recursive
        - event_get_field
        - p_strdup
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1103,7'
          Dst:             event_find_field_recursive
        - Src:             'lib-event.c:1108,10'
          Dst:             event_get_field
        - Src:             'lib-event.c:1110,21'
          Dst:             p_strdup
    - functionName:    event_add_fields
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          139
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - event_add_int
        - event_add_ip
        - event_add_str
        - event_add_timeval
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1229,4'
          Dst:             event_add_str
        - Src:             'lib-event.c:1231,4'
          Dst:             event_add_timeval
        - Src:             'lib-event.c:1234,4'
          Dst:             event_add_ip
        - Src:             'lib-event.c:1236,4'
          Dst:             event_add_int
    - functionName:    event_add_category
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_add_categories
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:975,9'
          Dst:             event_add_categories
    - functionName:    event_add_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - event_category_register
        - event_find_category
        - event_recalculate_debug_level
        - event_set_changed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:958,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:959,3'
          Dst:             array_create_i
        - Src:             'lib-event.c:962,20'
          Dst:             event_category_register
        - Src:             'lib-event.c:963,8'
          Dst:             event_find_category
        - Src:             'lib-event.c:964,4'
          Dst:             array_append_i
        - Src:             'lib-event.c:966,2'
          Dst:             event_set_changed
        - Src:             'lib-event.c:967,2'
          Dst:             event_recalculate_debug_level
    - functionName:    event_category_register
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 938
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          268
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - array_append_i
        - event_category_add_to_array
        - event_category_find_internal
        - event_category_register
        - i_memcpy
        - i_panic
        - i_strdup
        - malloc_multiply_check
        - p_malloc
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:863,10'
          Dst:             event_category_register
        - Src:             'lib-event.c:874,13'
          Dst:             event_category_find_internal
        - Src:             'lib-event.c:877,14'
          Dst:             malloc_multiply_check
        - Src:             'lib-event.c:877,14'
          Dst:             p_malloc
        - Src:             'lib-event.c:880,20'
          Dst:             i_strdup
        - Src:             'lib-event.c:886,3'
          Dst:             event_category_add_to_array
        - Src:             'lib-event.c:897,4'
          Dst:             i_panic
        - Src:             'lib-event.c:925,2'
          Dst:             array_append_i
        - Src:             'lib-event.c:933,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:933,58'
          Dst:             t_push
        - Src:             'lib-event.c:935,4'
          Dst:             t_pop
        - Src:             'lib-event.c:935,4'
          Dst:             i_panic
    - functionName:    event_find_category
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - array_lsearch_ptr_i
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:947,2'
          Dst:             i_panic
        - Src:             'lib-event.c:949,9'
          Dst:             array_lsearch_ptr_i
    - functionName:    event_recalculate_debug_level
      functionSourceFile: '/src/dovecot/src/lib/./lib-event-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    event_set_always_log_source
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_set_source
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_strdup
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:751,6'
          Dst:             strcmp
        - Src:             'lib-event.c:753,4'
          Dst:             p_strdup
    - functionName:    event_set_name
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:742,2'
          Dst:             p_free_internal
        - Src:             'lib-event.c:743,24'
          Dst:             i_strdup
    - functionName:    event_replace_log_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_log_prefix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:684,9'
          Dst:             event_set_log_prefix
    - functionName:    event_set_log_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 673
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_strdup
        - p_free_internal
        - p_strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:662,23'
          Dst:             p_strdup
        - Src:             'lib-event.c:667,4'
          Dst:             p_free_internal
        - Src:             'lib-event.c:670,23'
          Dst:             i_strdup
    - functionName:    event_set_append_log_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_set_log_prefix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:679,9'
          Dst:             event_set_log_prefix
    - functionName:    event_category_unregister_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1748
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1745,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'lib-event.c:1746,3'
          Dst:             i_unreached
        - Src:             'lib-event.c:1747,2'
          Dst:             array_delete_i
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    event_category_register_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1737
      functionLinenumberEnd: 1739
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1738,2'
          Dst:             array_append_i
    - functionName:    event_unregister_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1734
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
        - array_lsearch_ptr_idx_i
        - i_unreached
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1731,7'
          Dst:             array_lsearch_ptr_idx_i
        - Src:             'lib-event.c:1732,3'
          Dst:             i_unreached
        - Src:             'lib-event.c:1733,2'
          Dst:             array_delete_i
    - functionName:    array_insert_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_insert_array
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:235,8'
          Dst:             malloc_multiply_check
        - Src:             './array.h:234,2'
          Dst:             buffer_insert_array
    - functionName:    event_register_callback_prepend
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1723
      functionLinenumberEnd: 1725
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_insert_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1724,2'
          Dst:             array_insert_i
    - functionName:    event_register_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1718
      functionLinenumberEnd: 1720
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1719,2'
          Dst:             array_append_i
    - functionName:    event_import_arg
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1619
      functionLinenumberEnd: 1684
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          229
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - event_category_find_registered
        - event_find_category
        - event_import_field
        - event_import_tv
        - event_set_source
        - i_strdup
        - p_free_internal
        - str_to_uint
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:1625,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:1631,4'
          Dst:             event_category_find_registered
        - Src:             'lib-event.c:1633,15'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1637,8'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1638,4'
          Dst:             array_create_i
        - Src:             'lib-event.c:1639,8'
          Dst:             event_find_category
        - Src:             'lib-event.c:1640,4'
          Dst:             array_append_i
        - Src:             'lib-event.c:1644,8'
          Dst:             event_import_tv
        - Src:             'lib-event.c:1646,15'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1653,3'
          Dst:             p_free_internal
        - Src:             'lib-event.c:1654,25'
          Dst:             i_strdup
        - Src:             'lib-event.c:1663,7'
          Dst:             str_to_uint
        - Src:             'lib-event.c:1667,3'
          Dst:             event_set_source
        - Src:             'lib-event.c:1677,8'
          Dst:             event_import_field
    - functionName:    event_category_find_registered
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:815,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:816,7'
          Dst:             strcmp
    - functionName:    array_clear_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_set_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:192,2'
          Dst:             buffer_set_used_size
    - functionName:    event_import_unescaped
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1715
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - array_clear_i
        - array_is_created_i
        - event_import_arg
        - event_import_tv
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1694,6'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1695,3'
          Dst:             array_clear_i
        - Src:             'lib-event.c:1702,7'
          Dst:             event_import_tv
        - Src:             'lib-event.c:1703,14'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1710,8'
          Dst:             event_import_arg
    - functionName:    event_export_field_value
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          143
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
        - net_ip2addr
        - str_append_c
        - str_append_tabescaped
        - str_printfa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:1408,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:1410,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1411,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1412,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1413,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1416,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1417,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1418,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1421,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1422,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1423,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1428,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1429,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1430,29'
          Dst:             net_ip2addr
        - Src:             'lib-event.c:1430,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1435,4'
          Dst:             array_get_i
        - Src:             'lib-event.c:1436,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1437,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1438,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1440,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:1441,4'
          Dst:             str_append_tabescaped
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_send_abort
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1398
      functionLinenumberEnd: 1403
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - event_unref
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1400,2'
          Dst:             p_free_internal
        - Src:             'lib-event.c:1402,3'
          Dst:             event_unref
    - functionName:    event_unref
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          196
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - event_call_callbacks_noargs
        - event_unref
        - i_panic
        - p_free_internal
        - pool_unref
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:491,2'
          Dst:             i_panic
        - Src:             'lib-event.c:494,2'
          Dst:             i_panic
        - Src:             'lib-event.c:496,2'
          Dst:             event_call_callbacks_noargs
        - Src:             'lib-event.c:501,3'
          Dst:             p_free_internal
        - Src:             'lib-event.c:502,2'
          Dst:             p_free_internal
        - Src:             'lib-event.c:503,2'
          Dst:             event_unref
        - Src:             'lib-event.c:506,2'
          Dst:             pool_unref
    - functionName:    event_call_callbacks_noargs
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_call_callbacks
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:166,8'
          Dst:             event_call_callbacks
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_call_callbacks
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - array_is_created_i
        - i_memcpy
        - i_panic
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:139,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:142,2'
          Dst:             i_memcpy
        - Src:             'lib-event.c:145,3'
          Dst:             t_push
        - Src:             'lib-event.c:147,5'
          Dst:             t_pop
        - Src:             'lib-event.c:147,5'
          Dst:             i_panic
    - functionName:    event_vsend
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1395
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - event_add_int
        - event_call_callbacks
        - event_send_abort
        - get_self_rusage
        - i_gettimeofday
        - i_log_typev
        - timeval_diff_usecs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1377,2'
          Dst:             i_gettimeofday
        - Src:             'lib-event.c:1383,3'
          Dst:             get_self_rusage
        - Src:             'lib-event.c:1384,21'
          Dst:             timeval_diff_usecs
        - Src:             'lib-event.c:1386,3'
          Dst:             event_add_int
        - Src:             'lib-event.c:1388,6'
          Dst:             event_call_callbacks
        - Src:             'lib-event.c:1392,4'
          Dst:             i_log_typev
        - Src:             'lib-event.c:1394,2'
          Dst:             event_send_abort
    - functionName:    event_send
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1366
      functionLinenumberEnd: 1372
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_vsend
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1370,2'
          Dst:             event_vsend
    - functionName:    event_categories_iterate_deinit
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_destroy
        - hash_table_iterate_deinit
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1359,2'
          Dst:             hash_table_iterate_deinit
        - Src:             'lib-event.c:1360,2'
          Dst:             hash_table_destroy
        - Src:             'lib-event.c:1361,2'
          Dst:             p_free_internal
    - functionName:    event_categories_iterate
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_iterate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1348,9'
          Dst:             hash_table_iterate
    - functionName:    insert_category
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1305
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_table_update
        - insert_category
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1307,2'
          Dst:             hash_table_update
        - Src:             'lib-event.c:1311,3'
          Dst:             insert_category
    - functionName:    event_categories_iterate_init
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1316
      functionLinenumberEnd: 1337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          80
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_get_categories
        - hash_table_create_direct
        - hash_table_iterate_init
        - insert_category
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1321,9'
          Dst:             event_get_categories
        - Src:             'lib-event.c:1325,9'
          Dst:             malloc_multiply_check
        - Src:             'lib-event.c:1325,9'
          Dst:             p_malloc
        - Src:             'lib-event.c:1327,2'
          Dst:             hash_table_create_direct
        - Src:             'lib-event.c:1332,3'
          Dst:             insert_category
        - Src:             'lib-event.c:1334,15'
          Dst:             hash_table_iterate_init
    - functionName:    event_get_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1294
      functionLinenumberEnd: 1300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1295,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1299,9'
          Dst:             array_get_i
    - functionName:    event_get_fields
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - array_is_created_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1285,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1289,9'
          Dst:             array_get_i
    - functionName:    event_get_last_duration
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1276,19'
          Dst:             timeval_diff_usecs
        - Src:             'lib-event.c:1278,2'
          Dst:             i_panic
    - functionName:    event_get_last_send_time
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_get_create_time
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1259
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_get_pool
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1254
      functionLinenumberEnd: 1255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_get_parent
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_strlist_copy_recursive
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_get_field
        - event_get_recursive_strlist
        - event_strlist_append
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1151,2'
          Dst:             event_strlist_append
        - Src:             'lib-event.c:1152,30'
          Dst:             event_get_field
        - Src:             'lib-event.c:1153,2'
          Dst:             i_panic
        - Src:             'lib-event.c:1154,2'
          Dst:             event_get_recursive_strlist
    - functionName:    event_get_recursive_strlist
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1017
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          139
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - array_append_i
        - array_lsearch_i
        - event_find_field_nonrecursive
        - event_get_recursive_strlist
        - i_memcpy
        - i_strcmp_p
        - p_strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1024,10'
          Dst:             event_find_field_nonrecursive
        - Src:             'lib-event.c:1030,3'
          Dst:             i_memcpy
        - Src:             'lib-event.c:1031,8'
          Dst:             array_lsearch_i
        - Src:             'lib-event.c:1031,8'
          Dst:             i_strcmp_p
        - Src:             'lib-event.c:1033,12'
          Dst:             p_strdup
        - Src:             'lib-event.c:1034,5'
          Dst:             array_append_i
        - Src:             'lib-event.c:1038,2'
          Dst:             event_get_recursive_strlist
    - functionName:    event_find_field_recursive_str
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1074
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - array_create_i
        - event_find_field_recursive
        - event_get_global
        - event_get_recursive_strlist
        - i_unreached
        - net_ip2addr
        - p_array_const_string_join
        - pool_datastack_create
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:1050,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:1046,10'
          Dst:             event_find_field_recursive
        - Src:             'lib-event.c:1054,10'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1056,10'
          Dst:             t_strdup_printf
        - Src:             'lib-event.c:1060,10'
          Dst:             net_ip2addr
        - Src:             'lib-event.c:1063,3'
          Dst:             pool_datastack_create
        - Src:             'lib-event.c:1063,3'
          Dst:             array_create_i
        - Src:             'lib-event.c:1067,3'
          Dst:             event_get_recursive_strlist
        - Src:             'lib-event.c:1068,31'
          Dst:             event_get_global
        - Src:             'lib-event.c:1068,3'
          Dst:             event_get_recursive_strlist
        - Src:             'lib-event.c:1070,10'
          Dst:             p_array_const_string_join
        - Src:             'lib-event.c:1073,2'
          Dst:             i_unreached
    - functionName:    event_get_registered_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_get_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:838,9'
          Dst:             array_get_i
    - functionName:    event_get_ptr
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:802,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:805,7'
          Dst:             strcmp
    - functionName:    event_set_ptr
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
        - buffer_get_modifiable_data
        - p_strdup
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:781,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:782,3'
          Dst:             array_create_i
        - Src:             'lib-event.c:785,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'lib-event.c:786,8'
          Dst:             strcmp
        - Src:             'lib-event.c:792,6'
          Dst:             array_append_space_i
        - Src:             'lib-event.c:793,11'
          Dst:             p_strdup
    - functionName:    event_get_min_log_level
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 774
      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:    event_set_min_log_level
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_recalculate_debug_level
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:768,2'
          Dst:             event_recalculate_debug_level
    - functionName:    event_unset_log_message_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:732,2'
          Dst:             i_panic
        - Src:             'lib-event.c:733,2'
          Dst:             i_panic
    - functionName:    event_disable_callbacks
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_set_log_message_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_set_log_prefix_callback
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:702,3'
          Dst:             p_free_internal
    - functionName:    event_drop_parent_log_prefixes
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    event_reason_code_module_validate
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:608,7'
          Dst:             __ctype_b_loc
    - functionName:    event_reason_code_prefix
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          154
      EdgeCount:       49
      CyclomaticComplexity: 26
      functionsReached:
        - event_reason_code_module_validate
        - i_panic
        - str_append
        - str_append_c
        - str_c
        - strlen
        - t_str_new
        - tolower
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:638,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:619,2'
          Dst:             i_panic
        - Src:             'lib-event.c:620,2'
          Dst:             i_panic
        - Src:             'lib-event.c:622,7'
          Dst:             event_reason_code_module_validate
        - Src:             'lib-event.c:623,3'
          Dst:             i_panic
        - Src:             'lib-event.c:626,7'
          Dst:             event_reason_code_module_validate
        - Src:             'lib-event.c:627,3'
          Dst:             i_panic
        - Src:             'lib-event.c:631,28'
          Dst:             strlen
        - Src:             'lib-event.c:632,7'
          Dst:             strlen
        - Src:             'lib-event.c:632,29'
          Dst:             strlen
        - Src:             'lib-event.c:631,18'
          Dst:             t_str_new
        - Src:             'lib-event.c:633,2'
          Dst:             str_append
        - Src:             'lib-event.c:634,2'
          Dst:             str_append_c
        - Src:             'lib-event.c:635,2'
          Dst:             str_append
        - Src:             'lib-event.c:641,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:644,4'
          Dst:             i_panic
        - Src:             'lib-event.c:648,4'
          Dst:             tolower
        - Src:             'lib-event.c:648,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:652,9'
          Dst:             str_c
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_reason_code
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_reason_code_prefix
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:598,9'
          Dst:             event_reason_code_prefix
    - functionName:    event_reason_end
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - event_pop_global
        - event_unref
        - i_panic
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:588,2'
          Dst:             event_pop_global
        - Src:             'lib-event.c:591,2'
          Dst:             i_panic
        - Src:             'lib-event.c:592,2'
          Dst:             event_unref
        - Src:             'lib-event.c:593,2'
          Dst:             p_free_internal
    - functionName:    event_pop_global
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          115
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - array_is_created_i
        - i_panic
        - io_loop_get_active_global_root
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:529,2'
          Dst:             i_panic
        - Src:             'lib-event.c:530,2'
          Dst:             i_panic
        - Src:             'lib-event.c:534,2'
          Dst:             io_loop_get_active_global_root
        - Src:             'lib-event.c:534,2'
          Dst:             i_panic
        - Src:             'lib-event.c:536,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:537,6'
          Dst:             array_count_i
        - Src:             'lib-event.c:542,4'
          Dst:             array_get_i
        - Src:             'lib-event.c:544,3'
          Dst:             i_panic
        - Src:             'lib-event.c:546,3'
          Dst:             array_delete_i
    - functionName:    event_reason_begin
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_create
        - event_get_global
        - event_push_global
        - event_strlist_append
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:574,11'
          Dst:             malloc_multiply_check
        - Src:             'lib-event.c:574,11'
          Dst:             p_malloc
        - Src:             'lib-event.c:575,31'
          Dst:             event_get_global
        - Src:             'lib-event.c:575,18'
          Dst:             event_create
        - Src:             'lib-event.c:577,2'
          Dst:             event_strlist_append
        - Src:             'lib-event.c:578,2'
          Dst:             event_push_global
    - functionName:    event_create
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_call_callbacks_noargs
        - event_create_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:442,10'
          Dst:             event_create_internal
        - Src:             'lib-event.c:443,8'
          Dst:             event_call_callbacks_noargs
    - functionName:    event_push_global
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:516,2'
          Dst:             i_panic
        - Src:             'lib-event.c:519,8'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:520,4'
          Dst:             array_create_i
        - Src:             'lib-event.c:521,3'
          Dst:             array_append_i
    - functionName:    event_create_internal
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          113
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - event_copy_parent_defaults
        - event_ref
        - i_gettimeofday
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:415,16'
          Dst:             pool_alloconly_create
        - Src:             'lib-event.c:417,10'
          Dst:             malloc_multiply_check
        - Src:             'lib-event.c:417,10'
          Dst:             p_malloc
        - Src:             'lib-event.c:423,2'
          Dst:             i_gettimeofday
        - Src:             'lib-event.c:424,27'
          Dst:             p_strdup
        - Src:             'lib-event.c:429,3'
          Dst:             event_ref
        - Src:             'lib-event.c:430,3'
          Dst:             event_copy_parent_defaults
    - functionName:    event_ref
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:477,2'
          Dst:             i_panic
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    event_get_global_root
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_count_i
        - array_idx_i
        - array_is_created_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:558,6'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:559,6'
          Dst:             array_count_i
        - Src:             'lib-event.c:561,4'
          Dst:             array_idx_i
    - functionName:    events_get_head
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_create_passthrough
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - event_create
        - i_memcpy
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:455,4'
          Dst:             i_panic
        - Src:             'lib-event.c:461,4'
          Dst:             event_create
        - Src:             'lib-event.c:467,3'
          Dst:             i_memcpy
    - functionName:    replace_parent_ref
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - event_ref
        - event_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:300,3'
          Dst:             event_ref
        - Src:             'lib-event.c:302,2'
          Dst:             event_unref
    - functionName:    event_minimize
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          220
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - array_is_created_i
        - event_dup
        - event_flatten_recurse
        - event_ref
        - replace_parent_ref
        - timeval_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:365,10'
          Dst:             event_ref
        - Src:             'lib-event.c:371,7'
          Dst:             timeval_cmp
        - Src:             'lib-event.c:383,9'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:384,8'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:385,9'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:386,8'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:396,10'
          Dst:             event_ref
        - Src:             'lib-event.c:398,14'
          Dst:             event_dup
        - Src:             'lib-event.c:401,2'
          Dst:             event_flatten_recurse
        - Src:             'lib-event.c:402,2'
          Dst:             replace_parent_ref
        - Src:             'lib-event.c:405,2'
          Dst:             replace_parent_ref
    - functionName:    event_dup
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          54
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - event_create_internal
        - event_export
        - event_import
        - i_panic
        - str_c
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:241,3'
          Dst:             event_create_internal
        - Src:             'lib-event.c:243,18'
          Dst:             t_str_new
        - Src:             'lib-event.c:245,2'
          Dst:             event_export
        - Src:             'lib-event.c:246,25'
          Dst:             str_c
        - Src:             'lib-event.c:246,7'
          Dst:             event_import
        - Src:             'lib-event.c:247,42'
          Dst:             str_c
        - Src:             'lib-event.c:247,3'
          Dst:             i_panic
    - functionName:    event_flatten_recurse
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_copy_categories
        - event_copy_fields
        - event_flatten_recurse
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:262,3'
          Dst:             event_flatten_recurse
        - Src:             'lib-event.c:264,2'
          Dst:             event_copy_categories
        - Src:             'lib-event.c:265,2'
          Dst:             event_copy_fields
    - functionName:    event_copy_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - event_add_category
        - event_get_categories
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:174,3'
          Dst:             event_get_categories
        - Src:             'lib-event.c:176,3'
          Dst:             event_add_category
    - functionName:    event_copy_fields
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_i
        - array_is_created_i
        - event_add_int
        - event_add_ip
        - event_add_str
        - event_add_timeval
        - event_strlist_append
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib-event.c:188,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-event.c:185,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:190,4'
          Dst:             event_add_str
        - Src:             'lib-event.c:193,4'
          Dst:             event_add_int
        - Src:             'lib-event.c:196,4'
          Dst:             event_add_timeval
        - Src:             'lib-event.c:199,4'
          Dst:             event_add_ip
        - Src:             'lib-event.c:202,13'
          Dst:             array_get_i
        - Src:             'lib-event.c:204,5'
          Dst:             event_strlist_append
    - functionName:    event_export
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          240
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - array_is_created_i
        - event_export_field_value
        - i_memcpy
        - str_append_c
        - str_append_tabescaped
        - str_printfa
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1450,2'
          Dst:             str_printfa
        - Src:             'lib-event.c:1456,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1457,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1458,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1459,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1462,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1463,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1466,3'
          Dst:             str_printfa
        - Src:             'lib-event.c:1472,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1473,3'
          Dst:             str_append_c
        - Src:             'lib-event.c:1474,3'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1477,6'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1479,3'
          Dst:             i_memcpy
        - Src:             'lib-event.c:1480,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:1481,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:1482,4'
          Dst:             str_append_tabescaped
        - Src:             'lib-event.c:1486,6'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:1489,4'
          Dst:             str_append_c
        - Src:             'lib-event.c:1490,4'
          Dst:             event_export_field_value
    - functionName:    event_import
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_import_unescaped
        - t_strsplit_tabescaped
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:1497,39'
          Dst:             t_strsplit_tabescaped
        - Src:             'lib-event.c:1497,9'
          Dst:             event_import_unescaped
    - functionName:    event_flatten
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_create_internal
        - event_flatten_recurse
        - event_ref
        - event_set_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:275,10'
          Dst:             event_ref
        - Src:             'lib-event.c:279,8'
          Dst:             event_create_internal
        - Src:             'lib-event.c:281,8'
          Dst:             event_set_name
        - Src:             'lib-event.c:284,3'
          Dst:             event_flatten_recurse
        - Src:             'lib-event.c:285,2'
          Dst:             event_flatten_recurse
    - functionName:    event_has_all_fields
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - event_find_field_nonrecursive
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:229,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:231,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'lib-event.c:232,7'
          Dst:             event_find_field_nonrecursive
    - functionName:    event_has_all_categories
      functionSourceFile: '/src/dovecot/src/lib/lib-event.c'
      linkageType:     externalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - buffer_get_modifiable_data
        - event_find_category
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-event.c:215,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:217,7'
          Dst:             array_is_created_i
        - Src:             'lib-event.c:219,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'lib-event.c:220,8'
          Dst:             event_find_category
    - functionName:    sig_ignore
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sig_handler
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          121
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - lib_signal_delayed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:165,16'
          Dst:             __errno_location
        - Src:             'lib-signals.c:170,4'
          Dst:             lib_signal_delayed
        - Src:             'lib-signals.c:172,2'
          Dst:             __errno_location
    - functionName:    lib_signal_delayed
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lib_signals_syscall_error
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:124,7'
          Dst:             write
        - Src:             'lib-signals.c:125,4'
          Dst:             lib_signals_syscall_error
    - functionName:    lib_signals_syscall_error
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dec2str_buf
        - i_memcpy
        - strlen
        - write_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:678,37'
          Dst:             __errno_location
        - Src:             'lib-signals.c:678,14'
          Dst:             dec2str_buf
        - Src:             'lib-signals.c:680,22'
          Dst:             strlen
        - Src:             'lib-signals.c:681,25'
          Dst:             strlen
        - Src:             'lib-signals.c:684,2'
          Dst:             i_memcpy
        - Src:             'lib-signals.c:685,2'
          Dst:             i_memcpy
        - Src:             'lib-signals.c:687,6'
          Dst:             write_full
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal_shadow
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - array_create_i
        - array_get_i
        - array_idx_set_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:315,7'
          Dst:             array_is_created_i
        - Src:             'lib-signals.c:316,3'
          Dst:             array_create_i
        - Src:             'lib-signals.c:317,8'
          Dst:             array_get_i
        - Src:             'lib-signals.c:319,3'
          Dst:             i_panic
        - Src:             'lib-signals.c:323,2'
          Dst:             array_idx_set_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal_handle_shadowed
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         38
      ICount:          196
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - array_count_i
        - array_delete_i
        - array_get_i
        - array_is_created_i
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:261,7'
          Dst:             array_is_created_i
        - Src:             'lib-signals.c:262,6'
          Dst:             array_count_i
        - Src:             'lib-signals.c:265,8'
          Dst:             array_get_i
        - Src:             'lib-signals.c:270,3'
          Dst:             i_panic
        - Src:             'lib-signals.c:273,4'
          Dst:             i_panic
        - Src:             'lib-signals.c:289,4'
          Dst:             array_delete_i
        - Src:             'lib-signals.c:290,10'
          Dst:             array_get_i
    - functionName:    signal_read
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          241
      EdgeCount:       57
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - i_fatal
        - i_memcpy
        - i_panic
        - read
        - sigfillset
        - signal_handle_shadowed
        - signal_shadow
        - sigprocmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:339,3'
          Dst:             signal_handle_shadowed
        - Src:             'lib-signals.c:342,6'
          Dst:             sigfillset
        - Src:             'lib-signals.c:343,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:344,6'
          Dst:             sigprocmask
        - Src:             'lib-signals.c:345,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:349,8'
          Dst:             read
        - Src:             'lib-signals.c:351,3'
          Dst:             i_memcpy
        - Src:             'lib-signals.c:355,7'
          Dst:             __errno_location
        - Src:             'lib-signals.c:356,4'
          Dst:             i_fatal
        - Src:             'lib-signals.c:358,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:360,6'
          Dst:             sigprocmask
        - Src:             'lib-signals.c:361,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:374,4'
          Dst:             i_panic
        - Src:             'lib-signals.c:395,4'
          Dst:             signal_shadow
    - functionName:    sigfillset
      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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_signals_init_io
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_add_to
        - io_set_never_wait_alone
        - signal_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:205,10'
          Dst:             io_add_to
        - Src:             'lib-signals.c:205,10'
          Dst:             signal_read
        - Src:             'lib-signals.c:206,2'
          Dst:             io_set_never_wait_alone
    - functionName:    lib_signals_ioloop_find
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_signals_ioloop_ref
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - lib_signals_init_io
        - lib_signals_ioloop_find
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:214,6'
          Dst:             lib_signals_ioloop_find
        - Src:             'lib-signals.c:216,7'
          Dst:             malloc_multiply_check
        - Src:             'lib-signals.c:216,7'
          Dst:             p_malloc
        - Src:             'lib-signals.c:218,3'
          Dst:             lib_signals_init_io
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    lib_signals_deinit
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         30
      ICount:          128
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - array_free_i
        - array_is_created_i
        - close
        - i_error
        - i_panic
        - lib_signals_clear_handlers_and_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:714,4'
          Dst:             lib_signals_clear_handlers_and_ignore
        - Src:             'lib-signals.c:716,2'
          Dst:             i_panic
        - Src:             'lib-signals.c:719,7'
          Dst:             close
        - Src:             'lib-signals.c:720,4'
          Dst:             i_error
        - Src:             'lib-signals.c:721,7'
          Dst:             close
        - Src:             'lib-signals.c:722,4'
          Dst:             i_error
        - Src:             'lib-signals.c:726,6'
          Dst:             array_is_created_i
        - Src:             'lib-signals.c:727,3'
          Dst:             array_free_i
        - Src:             'lib-signals.c:728,2'
          Dst:             i_panic
    - functionName:    lib_signals_clear_handlers_and_ignore
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lib_signals_ignore_forced
        - signal_handler_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:590,2'
          Dst:             lib_signals_ignore_forced
        - Src:             'lib-signals.c:600,3'
          Dst:             signal_handler_free
    - functionName:    lib_signals_ignore_forced
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - sigaction
        - sigemptyset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:552,6'
          Dst:             sigemptyset
        - Src:             'lib-signals.c:553,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:567,6'
          Dst:             sigaction
        - Src:             'lib-signals.c:568,3'
          Dst:             i_fatal
    - functionName:    signal_handler_free
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          25
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - lib_signals_ioloop_unref
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:252,2'
          Dst:             lib_signals_ioloop_unref
        - Src:             'lib-signals.c:253,2'
          Dst:             p_free_internal
    - functionName:    lib_signals_ioloop_unref
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          132
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - io_remove
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:233,2'
          Dst:             i_panic
        - Src:             'lib-signals.c:236,2'
          Dst:             io_remove
        - Src:             'lib-signals.c:238,2'
          Dst:             p_free_internal
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lib_signals_ioloop_destroyed
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_remove
        - lib_signals_ioloop_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:454,15'
          Dst:             lib_signals_ioloop_find
        - Src:             'lib-signals.c:456,3'
          Dst:             io_remove
    - functionName:    lib_signals_ioloop_switched
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lib_signals_ioloop_switch
        - signal_check_shadowed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:444,2'
          Dst:             lib_signals_ioloop_switch
        - Src:             'lib-signals.c:447,2'
          Dst:             signal_check_shadowed
    - functionName:    lib_signals_ioloop_switch
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          102
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - lib_signals_ioloop_ref
        - lib_signals_ioloop_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:432,5'
          Dst:             lib_signals_ioloop_unref
        - Src:             'lib-signals.c:434,21'
          Dst:             lib_signals_ioloop_ref
    - functionName:    signal_check_shadowed
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          45
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - array_count_i
        - array_is_created_i
        - io_set_pending
        - lib_signals_ioloop_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:299,7'
          Dst:             array_is_created_i
        - Src:             'lib-signals.c:300,6'
          Dst:             array_count_i
        - Src:             'lib-signals.c:303,15'
          Dst:             lib_signals_ioloop_find
        - Src:             'lib-signals.c:305,3'
          Dst:             io_set_pending
    - functionName:    lib_signals_init
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - io_loop_add_destroy_callback
        - io_loop_add_switch_callback
        - lib_signals_ioloop_destroyed
        - lib_signals_ioloop_switched
        - lib_signals_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:698,2'
          Dst:             io_loop_add_switch_callback
        - Src:             'lib-signals.c:698,2'
          Dst:             lib_signals_ioloop_switched
        - Src:             'lib-signals.c:699,2'
          Dst:             io_loop_add_destroy_callback
        - Src:             'lib-signals.c:699,2'
          Dst:             lib_signals_ioloop_destroyed
        - Src:             'lib-signals.c:704,4'
          Dst:             lib_signals_set
    - functionName:    lib_signals_set
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - sigaction
        - sigemptyset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:485,6'
          Dst:             sigemptyset
        - Src:             'lib-signals.c:486,3'
          Dst:             i_fatal
        - Src:             'lib-signals.c:496,6'
          Dst:             sigaction
        - Src:             'lib-signals.c:497,3'
          Dst:             i_fatal
    - functionName:    lib_signals_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - signal_check_shadowed
        - signal_handler_switch_ioloop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:659,4'
          Dst:             i_panic
        - Src:             'lib-signals.c:660,4'
          Dst:             signal_handler_switch_ioloop
        - Src:             'lib-signals.c:663,4'
          Dst:             signal_check_shadowed
        - Src:             'lib-signals.c:668,2'
          Dst:             i_panic
    - functionName:    signal_handler_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lib_signals_ioloop_ref
        - lib_signals_ioloop_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:243,2'
          Dst:             lib_signals_ioloop_unref
        - Src:             'lib-signals.c:245,19'
          Dst:             lib_signals_ioloop_ref
    - functionName:    lib_signals_set_expected
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - lib_signals_update_expected_signals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:643,4'
          Dst:             lib_signals_update_expected_signals
        - Src:             'lib-signals.c:648,2'
          Dst:             i_panic
    - functionName:    lib_signals_update_expected_signals
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          87
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - io_set_never_wait_alone
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:407,3'
          Dst:             i_panic
        - Src:             'lib-signals.c:414,4'
          Dst:             io_set_never_wait_alone
    - functionName:    lib_signals_unset_handler
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - lib_signals_ignore_forced
        - lib_signals_update_expected_signals
        - signal_handler_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:617,5'
          Dst:             lib_signals_ignore_forced
        - Src:             'lib-signals.c:622,5'
          Dst:             lib_signals_update_expected_signals
        - Src:             'lib-signals.c:623,4'
          Dst:             signal_handler_free
        - Src:             'lib-signals.c:628,2'
          Dst:             i_panic
    - functionName:    lib_signals_ignore
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - lib_signals_ignore_forced
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:574,3'
          Dst:             i_panic
        - Src:             'lib-signals.c:578,2'
          Dst:             i_panic
        - Src:             'lib-signals.c:580,2'
          Dst:             lib_signals_ignore_forced
    - functionName:    lib_signals_set_handler2
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          166
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - fd_close_on_exec
        - fd_set_nonblock
        - i_fatal
        - i_panic
        - lib_signals_set
        - malloc_multiply_check
        - p_malloc
        - pipe
        - signal_handler_switch_ioloop
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:516,2'
          Dst:             i_panic
        - Src:             'lib-signals.c:519,3'
          Dst:             i_panic
        - Src:             'lib-signals.c:524,3'
          Dst:             lib_signals_set
        - Src:             'lib-signals.c:526,6'
          Dst:             malloc_multiply_check
        - Src:             'lib-signals.c:526,6'
          Dst:             p_malloc
        - Src:             'lib-signals.c:538,7'
          Dst:             pipe
        - Src:             'lib-signals.c:539,4'
          Dst:             i_fatal
        - Src:             'lib-signals.c:540,3'
          Dst:             fd_set_nonblock
        - Src:             'lib-signals.c:541,3'
          Dst:             fd_set_nonblock
        - Src:             'lib-signals.c:542,3'
          Dst:             fd_close_on_exec
        - Src:             'lib-signals.c:543,3'
          Dst:             fd_close_on_exec
        - Src:             'lib-signals.c:545,2'
          Dst:             signal_handler_switch_ioloop
    - 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:    lib_signals_set_handler
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lib_signals_set_handler2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:504,3'
          Dst:             lib_signals_set_handler2
        - Src:             'lib-signals.c:506,3'
          Dst:             lib_signals_set_handler2
    - functionName:    lib_signals_ioloop_attach
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          23
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lib_signals_ioloop_switch
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:478,3'
          Dst:             lib_signals_ioloop_switch
    - functionName:    lib_signals_ioloop_detach
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - lib_signals_ioloop_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib-signals.c:468,5'
          Dst:             lib_signals_ioloop_unref
    - functionName:    lib_signal_code_to_str
      functionSourceFile: '/src/dovecot/src/lib/lib-signals.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          89
      EdgeCount:       34
      CyclomaticComplexity: 17
      functionsReached:
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib-signals.c:69,2'
          Branch Sides:    []
        - Branch String:   'lib-signals.c:87,2'
          Branch Sides:    []
        - Branch String:   'lib-signals.c:89,3'
          Branch Sides:    []
        - Branch String:   'lib-signals.c:97,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lib-signals.c:111,9'
          Dst:             t_strdup_printf
    - functionName:    hash_method_result_md4
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md4_final
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:273,2'
          Dst:             md4_final
    - functionName:    md4_final
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     externalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          270
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - body
        - safe_memset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:213,3'
          Dst:             body
        - Src:             'md4.c:230,2'
          Dst:             body
        - Src:             'md4.c:249,2'
          Dst:             safe_memset
    - functionName:    body
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          1671
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_md4
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md4_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:268,2'
          Dst:             md4_update
    - functionName:    md4_update
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     externalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          145
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - body
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:180,4'
          Dst:             i_memcpy
        - Src:             'md4.c:184,3'
          Dst:             i_memcpy
        - Src:             'md4.c:187,3'
          Dst:             body
        - Src:             'md4.c:191,10'
          Dst:             body
        - Src:             'md4.c:195,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    hash_method_init_md4
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md4_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:264,2'
          Dst:             md4_init
    - functionName:    md4_init
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    md4_get_digest
      functionSourceFile: '/src/dovecot/src/lib/md4.c'
      linkageType:     externalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md4_final
        - md4_init
        - md4_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md4.c:257,2'
          Dst:             md4_init
        - Src:             'md4.c:258,2'
          Dst:             md4_update
        - Src:             'md4.c:259,2'
          Dst:             md4_final
    - functionName:    hash_method_result_md5
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_final
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:290,2'
          Dst:             md5_final
    - functionName:    md5_final
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     externalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          270
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - body
        - safe_memset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:230,3'
          Dst:             body
        - Src:             'md5.c:247,2'
          Dst:             body
        - Src:             'md5.c:266,2'
          Dst:             safe_memset
    - functionName:    body
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          2127
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_md5
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:285,2'
          Dst:             md5_update
    - functionName:    md5_update
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     externalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          145
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - body
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:197,4'
          Dst:             i_memcpy
        - Src:             'md5.c:201,3'
          Dst:             i_memcpy
        - Src:             'md5.c:204,3'
          Dst:             body
        - Src:             'md5.c:208,10'
          Dst:             body
        - Src:             'md5.c:212,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    hash_method_init_md5
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:281,2'
          Dst:             md5_init
    - functionName:    md5_init
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     externalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    md5_get_digest
      functionSourceFile: '/src/dovecot/src/lib/md5.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - md5_final
        - md5_init
        - md5_update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'md5.c:274,2'
          Dst:             md5_init
        - Src:             'md5.c:275,2'
          Dst:             md5_update
        - Src:             'md5.c:276,2'
          Dst:             md5_final
    - functionName:    memarea_free_callback_noop
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 93
      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:    memarea_get_size
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memarea_get
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memarea_get_refcount
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:76,2'
          Dst:             i_panic
    - functionName:    memarea_free_without_callback
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - memarea_get_refcount
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:70,2'
          Dst:             memarea_get_refcount
        - Src:             'memarea.c:70,2'
          Dst:             i_panic
        - Src:             'memarea.c:71,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memarea_unref
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:56,2'
          Dst:             i_panic
        - Src:             'memarea.c:60,2'
          Dst:             i_panic
        - Src:             'memarea.c:62,2'
          Dst:             p_free_internal
    - functionName:    memarea_ref
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:47,2'
          Dst:             i_panic
    - functionName:    memarea_init_empty
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:40,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    memarea_init
      functionSourceFile: '/src/dovecot/src/lib/memarea.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'memarea.c:27,2'
          Dst:             i_panic
        - Src:             'memarea.c:29,9'
          Dst:             malloc_multiply_check
        - Src:             'memarea.c:29,9'
          Dst:             p_malloc
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    pool_external_refs_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - array_free_i
        - array_is_created_i
        - i_memcpy
        - pool_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool.c:43,6'
          Dst:             array_is_created_i
        - Src:             'mempool.c:45,3'
          Dst:             i_memcpy
        - Src:             'mempool.c:46,4'
          Dst:             pool_unref
        - Src:             'mempool.c:47,3'
          Dst:             array_free_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_ref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    pool_add_external_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          112
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_i
        - array_create_i
        - array_is_created_i
        - i_panic
        - pool_ref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool.c:30,2'
          Dst:             i_panic
        - Src:             'mempool.c:31,2'
          Dst:             i_panic
        - Src:             'mempool.c:32,2'
          Dst:             i_panic
        - Src:             'mempool.c:33,2'
          Dst:             i_panic
        - Src:             'mempool.c:35,7'
          Dst:             array_is_created_i
        - Src:             'mempool.c:36,3'
          Dst:             array_create_i
        - Src:             'mempool.c:37,2'
          Dst:             array_append_i
        - Src:             'mempool.c:38,2'
          Dst:             pool_ref
    - functionName:    p_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_get_exp_grown_size
      functionSourceFile: '/src/dovecot/src/lib/mempool.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - nearest_power
        - p_get_max_easy_alloc_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool.c:17,2'
          Dst:             i_panic
        - Src:             'mempool.c:19,13'
          Dst:             nearest_power
        - Src:             'mempool.c:20,25'
          Dst:             p_get_max_easy_alloc_size
        - Src:             'mempool.c:24,2'
          Dst:             i_panic
    - functionName:    pool_block_detach
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          243
      EdgeCount:       49
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:243,2'
          Dst:             i_panic
        - Src:             'mempool-allocfree.c:247,2'
          Dst:             i_panic
        - Src:             'mempool-allocfree.c:248,2'
          Dst:             i_panic
        - Src:             'mempool-allocfree.c:251,2'
          Dst:             i_panic
        - Src:             'mempool-allocfree.c:252,2'
          Dst:             i_panic
    - functionName:    pool_block_attach
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:231,2'
          Dst:             i_panic
    - functionName:    pool_allocfree_destroy
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pool_allocfree_clear
        - safe_memset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:180,18'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:182,2'
          Dst:             pool_allocfree_clear
        - Src:             'mempool-allocfree.c:184,3'
          Dst:             safe_memset
        - Src:             'mempool-allocfree.c:189,2'
          Dst:             __errno_location
    - functionName:    pool_allocfree_clear
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - pool_allocfree_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:320,3'
          Dst:             pool_allocfree_free
        - Src:             'mempool-allocfree.c:322,2'
          Dst:             i_panic
    - functionName:    pool_allocfree_free
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pool_block_detach
        - safe_memset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:279,18'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:280,29'
          Dst:             pool_block_detach
        - Src:             'mempool-allocfree.c:282,3'
          Dst:             safe_memset
        - Src:             'mempool-allocfree.c:284,2'
          Dst:             __errno_location
    - functionName:    pool_allocfree_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_realloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_fatal_status
        - pool_block_attach
        - pool_block_detach
        - realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:293,18'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:295,29'
          Dst:             pool_block_detach
        - Src:             'mempool-allocfree.c:298,17'
          Dst:             realloc
        - Src:             'mempool-allocfree.c:299,3'
          Dst:             i_fatal_status
        - Src:             'mempool-allocfree.c:301,2'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:309,9'
          Dst:             pool_block_attach
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_malloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - calloc
        - i_fatal_status
        - pool_block_attach
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:264,18'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:266,29'
          Dst:             calloc
        - Src:             'mempool-allocfree.c:268,3'
          Dst:             i_fatal_status
        - Src:             'mempool-allocfree.c:270,2'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:272,9'
          Dst:             pool_block_attach
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - pool_allocfree_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:217,2'
          Dst:             i_panic
        - Src:             'mempool-allocfree.c:226,2'
          Dst:             pool_allocfree_destroy
    - functionName:    pool_allocfree_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:207,2'
          Dst:             i_panic
    - functionName:    pool_allocfree_get_name
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_get_total_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     externalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_get_total_used_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     externalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_allocfree_create_clean
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     externalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_allocfree_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:172,9'
          Dst:             pool_allocfree_create
    - functionName:    pool_allocfree_create
      functionSourceFile: '/src/dovecot/src/lib/mempool-allocfree.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          42
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - calloc
        - i_fatal_status
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-allocfree.c:149,18'
          Dst:             __errno_location
        - Src:             'mempool-allocfree.c:154,9'
          Dst:             calloc
        - Src:             'mempool-allocfree.c:156,3'
          Dst:             i_fatal_status
        - Src:             'mempool-allocfree.c:158,2'
          Dst:             __errno_location
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    pool_alloconly_try_grow
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          87
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_alloconly_free_block
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - safe_memset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:284,18'
          Dst:             __errno_location
        - Src:             'mempool-alloconly.c:290,3'
          Dst:             safe_memset
        - Src:             'mempool-alloconly.c:295,2'
          Dst:             __errno_location
    - functionName:    pool_alloconly_free_blocks_until_last
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_alloconly_free_block
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:309,3'
          Dst:             pool_alloconly_free_block
    - functionName:    pool_alloconly_destroy
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_free_block
        - pool_alloconly_free_blocks_until_last
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:316,2'
          Dst:             pool_alloconly_free_blocks_until_last
        - Src:             'mempool-alloconly.c:319,2'
          Dst:             pool_alloconly_free_block
    - functionName:    pool_alloconly_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_alloconly_clear
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_free_blocks_until_last
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:504,2'
          Dst:             pool_alloconly_free_blocks_until_last
    - functionName:    pool_alloconly_realloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - pool_alloconly_malloc
        - pool_alloconly_try_grow
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:475,2'
          Dst:             i_panic
        - Src:             'mempool-alloconly.c:483,7'
          Dst:             pool_alloconly_try_grow
        - Src:             'mempool-alloconly.c:485,13'
          Dst:             pool_alloconly_malloc
        - Src:             'mempool-alloconly.c:487,4'
          Dst:             i_memcpy
    - functionName:    pool_alloconly_malloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - block_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:416,3'
          Dst:             block_alloc
    - functionName:    block_alloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          166
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - calloc
        - i_fatal_status
        - i_panic
        - nearest_power
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:362,2'
          Dst:             i_panic
        - Src:             'mempool-alloconly.c:363,2'
          Dst:             i_panic
        - Src:             'mempool-alloconly.c:372,10'
          Dst:             nearest_power
        - Src:             'mempool-alloconly.c:387,18'
          Dst:             __errno_location
        - Src:             'mempool-alloconly.c:388,10'
          Dst:             calloc
        - Src:             'mempool-alloconly.c:390,3'
          Dst:             i_fatal_status
        - Src:             'mempool-alloconly.c:393,2'
          Dst:             __errno_location
    - functionName:    pool_alloconly_free
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          70
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_alloconly_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_alloconly_destroy
        - pool_external_refs_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:354,2'
          Dst:             pool_external_refs_unref
        - Src:             'mempool-alloconly.c:355,2'
          Dst:             pool_alloconly_destroy
    - functionName:    pool_alloconly_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_alloconly_get_name
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_alloconly_get_total_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     externalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:548,2'
          Dst:             i_panic
    - functionName:    pool_alloconly_get_total_used_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     externalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:534,2'
          Dst:             i_panic
    - functionName:    pool_alloconly_create_clean
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     externalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:275,9'
          Dst:             pool_alloconly_create
    - functionName:    pool_alloconly_create
      functionSourceFile: '/src/dovecot/src/lib/mempool-alloconly.c'
      linkageType:     externalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - block_alloc
        - i_panic
        - malloc_multiply_check
        - nearest_power
        - p_malloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-alloconly.c:248,10'
          Dst:             nearest_power
        - Src:             'mempool-alloconly.c:249,2'
          Dst:             block_alloc
        - Src:             'mempool-alloconly.c:252,14'
          Dst:             malloc_multiply_check
        - Src:             'mempool-alloconly.c:252,14'
          Dst:             p_malloc
        - Src:             'mempool-alloconly.c:265,2'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    pool_data_stack_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_get_bytes_available
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:192,9'
          Dst:             t_get_bytes_available
    - functionName:    pool_data_stack_clear
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 187
      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:    pool_data_stack_realloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - t_malloc_no0
        - t_try_realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:165,2'
          Dst:             i_panic
        - Src:             'mempool-datastack.c:169,3'
          Dst:             i_panic
        - Src:             'mempool-datastack.c:174,7'
          Dst:             t_try_realloc
        - Src:             'mempool-datastack.c:175,13'
          Dst:             t_malloc_no0
        - Src:             'mempool-datastack.c:177,4'
          Dst:             i_memcpy
    - functionName:    pool_data_stack_free
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:155,3'
          Dst:             i_panic
    - functionName:    pool_data_stack_malloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          42
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:144,3'
          Dst:             i_panic
        - Src:             'mempool-datastack.c:146,9'
          Dst:             t_malloc0
    - functionName:    pool_data_stack_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:130,3'
          Dst:             i_panic
        - Src:             'mempool-datastack.c:133,2'
          Dst:             i_panic
    - functionName:    pool_data_stack_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:119,3'
          Dst:             i_panic
    - functionName:    pool_data_stack_get_name
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    pool_datastack_create
      functionSourceFile: '/src/dovecot/src/lib/mempool-datastack.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - t_malloc0
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-datastack.c:101,10'
          Dst:             malloc_multiply_check
        - Src:             'mempool-datastack.c:101,10'
          Dst:             t_malloc0
    - functionName:    pool_system_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_system_realloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_fatal_status
        - i_panic
        - malloc_usable_size
        - realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-system.c:128,2'
          Dst:             malloc_usable_size
        - Src:             'mempool-system.c:128,2'
          Dst:             i_panic
        - Src:             'mempool-system.c:132,18'
          Dst:             __errno_location
        - Src:             'mempool-system.c:133,8'
          Dst:             realloc
        - Src:             'mempool-system.c:135,3'
          Dst:             i_fatal_status
        - Src:             'mempool-system.c:138,2'
          Dst:             __errno_location
    - functionName:    malloc_usable_size
      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:    pool_system_malloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          44
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - calloc
        - i_fatal_status
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-system.c:100,18'
          Dst:             __errno_location
        - Src:             'mempool-system.c:103,8'
          Dst:             calloc
        - Src:             'mempool-system.c:105,3'
          Dst:             i_fatal_status
        - Src:             'mempool-system.c:108,2'
          Dst:             __errno_location
    - functionName:    pool_system_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 96
      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:    pool_system_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      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:    pool_system_get_name
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_system_free
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-system.c:114,18'
          Dst:             __errno_location
        - Src:             'mempool-system.c:121,2'
          Dst:             __errno_location
    - functionName:    pool_system_clear
      functionSourceFile: '/src/dovecot/src/lib/mempool-system.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-system.c:151,2'
          Dst:             i_panic
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    pool_unsafe_data_stack_get_max_easy_alloc_size
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_get_bytes_available
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-unsafe-datastack.c:137,9'
          Dst:             t_get_bytes_available
    - functionName:    pool_unsafe_data_stack_clear
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      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:    pool_unsafe_data_stack_realloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - i_panic
        - t_malloc_no0
        - t_try_realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-unsafe-datastack.c:113,2'
          Dst:             i_panic
        - Src:             'mempool-unsafe-datastack.c:119,7'
          Dst:             t_try_realloc
        - Src:             'mempool-unsafe-datastack.c:120,13'
          Dst:             t_malloc_no0
        - Src:             'mempool-unsafe-datastack.c:122,4'
          Dst:             i_memcpy
    - functionName:    pool_unsafe_data_stack_free
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unsafe_data_stack_malloc
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mempool-unsafe-datastack.c:99,9'
          Dst:             t_malloc0
    - functionName:    pool_unsafe_data_stack_unref
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      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:    pool_unsafe_data_stack_ref
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 90
      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:    pool_unsafe_data_stack_get_name
      functionSourceFile: '/src/dovecot/src/lib/mempool-unsafe-datastack.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_check_missing_plugin_dependencies
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - dlsym
        - str_c
        - str_printfa
        - strcmp
        - strlen
        - strncmp
        - t_str_new
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:116,8'
          Dst:             t_strconcat
        - Src:             'module-dir.c:115,9'
          Dst:             dlsym
        - Src:             'module-dir.c:121,9'
          Dst:             strlen
        - Src:             'module-dir.c:123,8'
          Dst:             strncmp
        - Src:             'module-dir.c:125,9'
          Dst:             strcmp
        - Src:             'module-dir.c:129,13'
          Dst:             t_str_new
        - Src:             'module-dir.c:130,4'
          Dst:             str_printfa
        - Src:             'module-dir.c:133,5'
          Dst:             str_printfa
        - Src:             'module-dir.c:138,15'
          Dst:             str_c
    - functionName:    dlsym
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_check_wrong_binary_dependency
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - dlsym
        - str_array_find
        - str_c
        - str_printfa
        - t_str_new
        - t_strconcat
        - t_strsplit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:83,16'
          Dst:             t_strconcat
        - Src:             'module-dir.c:84,15'
          Dst:             dlsym
        - Src:             'module-dir.c:88,10'
          Dst:             t_strsplit
        - Src:             'module-dir.c:89,6'
          Dst:             str_array_find
        - Src:             'module-dir.c:92,11'
          Dst:             t_str_new
        - Src:             'module-dir.c:93,2'
          Dst:             str_printfa
        - Src:             'module-dir.c:96,3'
          Dst:             str_printfa
        - Src:             'module-dir.c:98,3'
          Dst:             str_printfa
        - Src:             'module-dir.c:99,2'
          Dst:             str_printfa
        - Src:             'module-dir.c:100,13'
          Dst:             str_c
    - functionName:    versions_equal
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_symbol
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - module_get_symbol
        - module_get_symbol_quiet
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:52,10'
          Dst:             module_get_symbol_quiet
        - Src:             'module-dir.c:54,9'
          Dst:             module_get_symbol
    - functionName:    module_get_symbol_quiet
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dlerror
        - dlsym
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:27,8'
          Dst:             dlerror
        - Src:             'module-dir.c:29,9'
          Dst:             dlsym
    - functionName:    module_get_symbol
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dlerror
        - i_error
        - module_get_symbol_quiet
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:37,8'
          Dst:             module_get_symbol_quiet
        - Src:             'module-dir.c:39,11'
          Dst:             dlerror
        - Src:             'module-dir.c:41,4'
          Dst:             i_error
    - functionName:    dlerror
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    quiet_dlopen
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dlopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:148,9'
          Dst:             dlopen
    - functionName:    dlopen
      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:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_load
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          323
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - dlerror
        - dlopen
        - get_symbol
        - i_debug
        - i_strdup
        - malloc_multiply_check
        - module_check_missing_plugin_dependencies
        - module_check_wrong_binary_dependency
        - module_free
        - p_malloc
        - quiet_dlopen
        - t_strconcat
        - t_strdup_printf
        - versions_equal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:195,12'
          Dst:             quiet_dlopen
        - Src:             'module-dir.c:202,12'
          Dst:             dlerror
        - Src:             'module-dir.c:198,5'
          Dst:             i_debug
        - Src:             'module-dir.c:207,12'
          Dst:             dlopen
        - Src:             'module-dir.c:210,10'
          Dst:             dlerror
        - Src:             'module-dir.c:209,15'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:214,13'
          Dst:             dlopen
        - Src:             'module-dir.c:223,11'
          Dst:             malloc_multiply_check
        - Src:             'module-dir.c:223,11'
          Dst:             p_malloc
        - Src:             'module-dir.c:224,17'
          Dst:             i_strdup
        - Src:             'module-dir.c:225,17'
          Dst:             i_strdup
        - Src:             'module-dir.c:229,22'
          Dst:             t_strconcat
        - Src:             'module-dir.c:229,3'
          Dst:             get_symbol
        - Src:             'module-dir.c:231,7'
          Dst:             versions_equal
        - Src:             'module-dir.c:232,14'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:235,3'
          Dst:             module_free
        - Src:             'module-dir.c:241,22'
          Dst:             t_strconcat
        - Src:             'module-dir.c:241,3'
          Dst:             get_symbol
        - Src:             'module-dir.c:244,22'
          Dst:             t_strconcat
        - Src:             'module-dir.c:244,3'
          Dst:             get_symbol
        - Src:             'module-dir.c:247,22'
          Dst:             t_strconcat
        - Src:             'module-dir.c:247,3'
          Dst:             get_symbol
        - Src:             'module-dir.c:254,14'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:257,14'
          Dst:             module_check_wrong_binary_dependency
        - Src:             'module-dir.c:259,14'
          Dst:             module_check_missing_plugin_dependencies
        - Src:             'module-dir.c:266,3'
          Dst:             module_free
        - Src:             'module-dir.c:271,3'
          Dst:             i_debug
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    module_free
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - dlclose
        - getenv
        - i_error
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:64,6'
          Dst:             getenv
        - Src:             'module-dir.c:65,7'
          Dst:             dlclose
        - Src:             'module-dir.c:66,4'
          Dst:             i_error
        - Src:             'module-dir.c:68,2'
          Dst:             p_free_internal
        - Src:             'module-dir.c:69,2'
          Dst:             p_free_internal
        - Src:             'module-dir.c:70,2'
          Dst:             p_free_internal
    - functionName:    dlclose
      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:    module_is_loaded
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_dir_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:338,9'
          Dst:             module_dir_find
    - functionName:    module_dir_find
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:324,15'
          Dst:             strlen
        - Src:             'module-dir.c:327,7'
          Dst:             strncmp
        - Src:             'module-dir.c:329,8'
          Dst:             strcmp
    - functionName:    module_want_load
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:296,7'
          Dst:             strcmp
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    module_name_cmp
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_begins_builtin_success
        - strcmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:280,8'
          Dst:             strncmp
        - Src:             'module-dir.c:280,8'
          Dst:             str_begins_builtin_success
        - Src:             'module-dir.c:281,8'
          Dst:             strncmp
        - Src:             'module-dir.c:281,8'
          Dst:             str_begins_builtin_success
        - Src:             'module-dir.c:282,9'
          Dst:             strcmp
    - functionName:    str_begins_builtin_success
      functionSourceFile: '/src/dovecot/src/lib/./strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    check_duplicates
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
        - i_fatal
        - i_panic
        - module_file_get_name
        - strcmp
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:310,14'
          Dst:             module_file_get_name
        - Src:             'module-dir.c:311,12'
          Dst:             array_get_i
        - Src:             'module-dir.c:312,30'
          Dst:             t_push
        - Src:             'module-dir.c:313,9'
          Dst:             module_file_get_name
        - Src:             'module-dir.c:315,7'
          Dst:             strcmp
        - Src:             'module-dir.c:316,4'
          Dst:             i_fatal
        - Src:             'module-dir.c:318,4'
          Dst:             t_pop
        - Src:             'module-dir.c:318,4'
          Dst:             i_panic
    - functionName:    module_file_get_name
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          112
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - str_begins_builtin_success
        - strncmp
        - strstr
        - t_strdup_until
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:606,8'
          Dst:             strncmp
        - Src:             'module-dir.c:606,8'
          Dst:             str_begins_builtin_success
        - Src:             'module-dir.c:615,6'
          Dst:             strstr
        - Src:             'module-dir.c:619,9'
          Dst:             t_strdup_until
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    module_dir_is_all_loaded
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - module_is_loaded
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:370,8'
          Dst:             module_is_loaded
    - functionName:    module_name_drop_suffix
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
        - strlen
        - t_strndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:626,8'
          Dst:             strlen
        - Src:             'module-dir.c:627,17'
          Dst:             strcmp
        - Src:             'module-dir.c:628,10'
          Dst:             t_strndup
    - functionName:    module_get_plugin_name
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - module_name_drop_suffix
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:634,9'
          Dst:             module_name_drop_suffix
    - functionName:    module_dir_load
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 598
      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:
        - module_dir_load_missing
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:598,9'
          Dst:             module_dir_load_missing
    - functionName:    module_dir_load_missing
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - i_fatal
        - module_dir_try_load_missing
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:520,6'
          Dst:             module_dir_try_load_missing
        - Src:             'module-dir.c:523,4'
          Dst:             i_fatal
        - Src:             'module-dir.c:525,4'
          Dst:             i_error
    - functionName:    module_dir_try_load_missing
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - module_dir_load_real
        - module_names_fix
        - t_pop_pass_str
        - t_push
        - t_strarray_join
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:500,2'
          Dst:             t_push
        - Src:             'module-dir.c:502,9'
          Dst:             module_names_fix
        - Src:             'module-dir.c:501,9'
          Dst:             module_dir_load_real
        - Src:             'module-dir.c:504,4'
          Dst:             t_pop_pass_str
        - Src:             'module-dir.c:504,4'
          Dst:             i_panic
        - Src:             'module-dir.c:507,14'
          Dst:             t_strarray_join
        - Src:             'module-dir.c:506,14'
          Dst:             t_strdup_printf
    - functionName:    module_names_fix
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          125
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - i_strcmp_p
        - malloc_multiply_check
        - module_file_get_name
        - qsort
        - str_array_length
        - strcmp
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:351,16'
          Dst:             str_array_length
        - Src:             'module-dir.c:351,16'
          Dst:             malloc_multiply_check
        - Src:             'module-dir.c:351,16'
          Dst:             t_malloc0
        - Src:             'module-dir.c:353,20'
          Dst:             module_file_get_name
        - Src:             'module-dir.c:356,2'
          Dst:             qsort
        - Src:             'module-dir.c:356,2'
          Dst:             i_strcmp_p
        - Src:             'module-dir.c:358,7'
          Dst:             strcmp
    - functionName:    module_dir_load_real
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          464
      EdgeCount:       110
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - array_append_i
        - array_create_i
        - array_get_i
        - array_sort_i
        - check_duplicates
        - closedir
        - i_debug
        - i_error
        - i_panic
        - module_dir_is_all_loaded
        - module_file_get_name
        - module_is_loaded
        - module_load
        - module_name_cmp
        - module_name_drop_suffix
        - module_want_load
        - opendir
        - p_strdup
        - pool_alloconly_create
        - pool_unref
        - readdir
        - strlen
        - strstr
        - t_pop
        - t_push
        - t_strconcat
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:394,7'
          Dst:             module_dir_is_all_loaded
        - Src:             'module-dir.c:399,3'
          Dst:             i_debug
        - Src:             'module-dir.c:401,9'
          Dst:             opendir
        - Src:             'module-dir.c:403,14'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:409,10'
          Dst:             __errno_location
        - Src:             'module-dir.c:412,9'
          Dst:             pool_alloconly_create
        - Src:             'module-dir.c:413,2'
          Dst:             array_create_i
        - Src:             'module-dir.c:416,7'
          Dst:             __errno_location
        - Src:             'module-dir.c:416,23'
          Dst:             readdir
        - Src:             'module-dir.c:422,7'
          Dst:             strstr
        - Src:             'module-dir.c:423,20'
          Dst:             strlen
        - Src:             'module-dir.c:426,3'
          Dst:             t_push
        - Src:             'module-dir.c:427,4'
          Dst:             check_duplicates
        - Src:             'module-dir.c:428,5'
          Dst:             t_pop
        - Src:             'module-dir.c:428,5'
          Dst:             i_panic
        - Src:             'module-dir.c:430,10'
          Dst:             p_strdup
        - Src:             'module-dir.c:431,3'
          Dst:             array_append_i
        - Src:             'module-dir.c:416,47'
          Dst:             __errno_location
        - Src:             'module-dir.c:433,6'
          Dst:             __errno_location
        - Src:             'module-dir.c:434,14'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:435,6'
          Dst:             closedir
        - Src:             'module-dir.c:436,14'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:438,3'
          Dst:             pool_unref
        - Src:             'module-dir.c:442,2'
          Dst:             array_sort_i
        - Src:             'module-dir.c:442,2'
          Dst:             module_name_cmp
        - Src:             'module-dir.c:443,12'
          Dst:             array_get_i
        - Src:             'module-dir.c:449,30'
          Dst:             t_push
        - Src:             'module-dir.c:453,19'
          Dst:             module_file_get_name
        - Src:             'module-dir.c:454,21'
          Dst:             module_name_drop_suffix
        - Src:             'module-dir.c:455,8'
          Dst:             module_want_load
        - Src:             'module-dir.c:456,7'
          Dst:             module_is_loaded
        - Src:             'module-dir.c:459,11'
          Dst:             t_strconcat
        - Src:             'module-dir.c:460,10'
          Dst:             module_load
        - Src:             'module-dir.c:464,16'
          Dst:             t_strdup_printf
        - Src:             'module-dir.c:468,5'
          Dst:             i_error
        - Src:             'module-dir.c:476,4'
          Dst:             t_pop
        - Src:             'module-dir.c:476,4'
          Dst:             i_panic
        - Src:             'module-dir.c:477,2'
          Dst:             pool_unref
        - Src:             'module-dir.c:483,16'
          Dst:             t_strdup_printf
    - functionName:    opendir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_dir_unload
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - module_dir_deinit
        - module_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:585,2'
          Dst:             module_dir_deinit
        - Src:             'module-dir.c:589,3'
          Dst:             module_free
    - functionName:    module_dir_deinit
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          198
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - t_malloc0
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:558,2'
          Dst:             t_push
        - Src:             'module-dir.c:559,9'
          Dst:             malloc_multiply_check
        - Src:             'module-dir.c:559,9'
          Dst:             t_malloc0
        - Src:             'module-dir.c:571,4'
          Dst:             t_push
        - Src:             'module-dir.c:573,6'
          Dst:             t_pop
        - Src:             'module-dir.c:573,6'
          Dst:             i_panic
        - Src:             'module-dir.c:576,4'
          Dst:             t_pop
        - Src:             'module-dir.c:576,4'
          Dst:             i_panic
    - functionName:    module_dir_init
      functionSourceFile: '/src/dovecot/src/lib/module-dir.c'
      linkageType:     externalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          89
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'module-dir.c:537,30'
          Dst:             t_push
        - Src:             'module-dir.c:539,6'
          Dst:             t_pop
        - Src:             'module-dir.c:539,6'
          Dst:             i_panic
    - functionName:    net_connect_ip_once
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          193
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - bind
        - connect
        - i_close_fd_path
        - i_error
        - i_warning
        - net_ip2addr
        - net_set_nonblock
        - setsockopt
        - sin_set_ip
        - sin_set_port
        - socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:192,3'
          Dst:             i_warning
        - Src:             'net.c:199,7'
          Dst:             socket
        - Src:             'net.c:202,3'
          Dst:             i_error
        - Src:             'net.c:207,8'
          Dst:             setsockopt
        - Src:             'net.c:209,9'
          Dst:             setsockopt
        - Src:             'net.c:211,3'
          Dst:             net_set_nonblock
        - Src:             'net.c:215,3'
          Dst:             sin_set_ip
        - Src:             'net.c:216,7'
          Dst:             bind
        - Src:             'net.c:217,35'
          Dst:             net_ip2addr
        - Src:             'net.c:217,4'
          Dst:             i_error
        - Src:             'net.c:218,4'
          Dst:             i_close_fd_path
        - Src:             'net.c:224,2'
          Dst:             sin_set_ip
        - Src:             'net.c:225,2'
          Dst:             sin_set_port
        - Src:             'net.c:226,8'
          Dst:             connect
        - Src:             'net.c:229,17'
          Dst:             __errno_location
        - Src:             'net.c:234,3'
          Dst:             i_close_fd_path
    - 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:    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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_set_nonblock
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fd_set_nonblock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:380,2'
          Dst:             fd_set_nonblock
    - functionName:    sin_set_ip
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:142,3'
          Dst:             i_memcpy
        - Src:             'net.c:144,3'
          Dst:             i_memcpy
    - 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:    net_ip2addr
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getnameinfo
        - net_handle_gai_error
        - t_malloc_no0
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:943,15'
          Dst:             t_malloc_no0
        - Src:             'net.c:945,13'
          Dst:             getnameinfo
        - Src:             'net.c:947,9'
          Dst:             net_handle_gai_error
    - functionName:    sin_set_port
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - htons
        - i_unreached
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:168,24'
          Dst:             htons
        - Src:             'net.c:170,22'
          Dst:             htons
        - Src:             'net.c:172,3'
          Dst:             i_unreached
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    net_handle_gai_error
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 3
      functionsReached:
        - gai_strerror
        - i_error
        - i_fatal_status
      functionUses:    4
      BranchProfiles:
        - Branch String:   'net.c:57,2'
          Branch Sides:    []
      Callsites:
        - Src:             'net.c:70,21'
          Dst:             gai_strerror
        - Src:             'net.c:69,3'
          Dst:             i_fatal_status
        - Src:             'net.c:73,4'
          Dst:             i_error
        - Src:             'net.c:78,5'
          Dst:             gai_strerror
        - Src:             'net.c:77,4'
          Dst:             i_error
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    net_is_in_network
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1259
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          299
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - htonl
        - i_panic
        - net_ipv6_mapped_ipv4_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1208,6'
          Dst:             net_ipv6_mapped_ipv4_convert
        - Src:             'net.c:1222,2'
          Dst:             i_panic
        - Src:             'net.c:1243,7'
          Dst:             htonl
        - Src:             'net.c:1244,7'
          Dst:             htonl
    - functionName:    net_ipv6_mapped_ipv4_convert
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1095,6'
          Dst:             memcmp
        - Src:             'net.c:1100,2'
          Dst:             i_memcpy
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_parse_range
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1198
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - net_addr2ip
        - str_to_uint
        - strchr
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1180,6'
          Dst:             strchr
        - Src:             'net.c:1182,13'
          Dst:             t_strdup_until
        - Src:             'net.c:1184,6'
          Dst:             net_addr2ip
        - Src:             'net.c:1193,7'
          Dst:             str_to_uint
    - functionName:    net_addr2ip
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          165
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - i_panic
        - net_addr2ip_inet4_fast
        - net_handle_gai_error
        - sin_get_ip
        - strchr
        - strlen
        - t_pop
        - t_push
        - t_strndup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:986,6'
          Dst:             net_addr2ip_inet4_fast
        - Src:             'net.c:989,2'
          Dst:             t_push
        - Src:             'net.c:990,7'
          Dst:             strchr
        - Src:             'net.c:993,18'
          Dst:             strlen
        - Src:             'net.c:995,13'
          Dst:             t_strndup
        - Src:             'net.c:1003,14'
          Dst:             getaddrinfo
        - Src:             'net.c:1004,4'
          Dst:             i_panic
        - Src:             'net.c:1007,4'
          Dst:             sin_get_ip
        - Src:             'net.c:1010,4'
          Dst:             freeaddrinfo
        - Src:             'net.c:1011,9'
          Dst:             net_handle_gai_error
        - Src:             'net.c:1012,4'
          Dst:             t_pop
        - Src:             'net.c:1012,4'
          Dst:             i_panic
    - functionName:    net_addr2ip_inet4_fast
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - str_parse_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:958,6'
          Dst:             str_parse_uint
        - Src:             'net.c:973,7'
          Dst:             str_parse_uint
    - functionName:    sin_get_ip
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - i_memcpy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:157,3'
          Dst:             i_memcpy
        - Src:             'net.c:160,3'
          Dst:             i_memcpy
    - functionName:    net_getservbyport
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getservbyport
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1170,24'
          Dst:             htons
        - Src:             'net.c:1170,10'
          Dst:             getservbyport
    - functionName:    getservbyport
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_hosterror_notfound
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1160
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_get_hosterror_type
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_gethosterror
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - gai_strerror
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1121,2'
          Dst:             i_panic
        - Src:             'net.c:1123,9'
          Dst:             gai_strerror
    - functionName:    net_geterror
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - getsockopt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1109,6'
          Dst:             getsockopt
        - Src:             'net.c:1113,10'
          Dst:             __errno_location
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_ipport2str
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1079
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - net_ip2addr
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1080,2'
          Dst:             i_panic
        - Src:             'net.c:1083,42'
          Dst:             net_ip2addr
        - Src:             'net.c:1082,9'
          Dst:             t_strdup_printf
    - functionName:    net_str2hostport
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - net_str2port
        - strchr
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1050,7'
          Dst:             strchr
        - Src:             'net.c:1053,10'
          Dst:             t_strdup_until
        - Src:             'net.c:1055,7'
          Dst:             strchr
        - Src:             'net.c:1056,20'
          Dst:             strchr
        - Src:             'net.c:1062,10'
          Dst:             t_strdup_until
        - Src:             'net.c:1071,6'
          Dst:             net_str2port
    - functionName:    net_str2port
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1017
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_uintmax
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1020,6'
          Dst:             str_to_uintmax
    - functionName:    net_str2port_zero
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:1033,6'
          Dst:             str_to_uintmax
    - functionName:    net_getunixcred
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getsockopt
        - i_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:813,6'
          Dst:             getsockopt
        - Src:             'net.c:814,3'
          Dst:             i_error
    - functionName:    net_getunixname
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getsockname
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:791,6'
          Dst:             getsockname
        - Src:             'net.c:794,3'
          Dst:             __errno_location
        - Src:             'net.c:797,12'
          Dst:             t_strdup
    - functionName:    net_getpeername
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          117
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - getpeername
        - i_panic
        - sin_get_ip
        - sin_get_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:768,2'
          Dst:             i_panic
        - Src:             'net.c:772,6'
          Dst:             getpeername
        - Src:             'net.c:779,21'
          Dst:             sin_get_ip
        - Src:             'net.c:780,29'
          Dst:             sin_get_port
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sin_get_port
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ntohs
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:178,10'
          Dst:             ntohs
        - Src:             'net.c:180,10'
          Dst:             ntohs
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_getsockname
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 761
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          117
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - getsockname
        - i_panic
        - sin_get_ip
        - sin_get_port
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:746,2'
          Dst:             i_panic
        - Src:             'net.c:750,6'
          Dst:             getsockname
        - Src:             'net.c:757,21'
          Dst:             sin_get_ip
        - Src:             'net.c:758,29'
          Dst:             sin_get_port
    - functionName:    net_gethostbyaddr
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getnameinfo
        - net_handle_gai_error
        - sin_set_ip
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:731,2'
          Dst:             sin_set_ip
        - Src:             'net.c:732,8'
          Dst:             getnameinfo
        - Src:             'net.c:734,6'
          Dst:             net_handle_gai_error
        - Src:             'net.c:737,12'
          Dst:             t_strdup
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    net_gethostbyname
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - i_panic
        - malloc_multiply_check
        - net_addr2ip
        - net_handle_gai_error
        - sin_get_ip
        - t_malloc0
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:685,24'
          Dst:             net_addr2ip
        - Src:             'net.c:687,10'
          Dst:             malloc_multiply_check
        - Src:             'net.c:687,10'
          Dst:             t_malloc0
        - Src:             'net.c:697,15'
          Dst:             getaddrinfo
        - Src:             'net.c:698,6'
          Dst:             net_handle_gai_error
        - Src:             'net.c:699,3'
          Dst:             i_panic
        - Src:             'net.c:707,2'
          Dst:             i_panic
        - Src:             'net.c:710,9'
          Dst:             malloc_multiply_check
        - Src:             'net.c:710,9'
          Dst:             t_malloc0
        - Src:             'net.c:716,3'
          Dst:             sin_get_ip
        - Src:             'net.c:718,2'
          Dst:             freeaddrinfo
    - functionName:    net_receive
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          130
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - i_panic
        - read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:648,2'
          Dst:             i_panic
        - Src:             'net.c:649,2'
          Dst:             i_panic
        - Src:             'net.c:651,8'
          Dst:             read
        - Src:             'net.c:654,3'
          Dst:             __errno_location
        - Src:             'net.c:659,7'
          Dst:             __errno_location
        - Src:             'net.c:659,25'
          Dst:             __errno_location
        - Src:             'net.c:662,7'
          Dst:             __errno_location
        - Src:             'net.c:662,30'
          Dst:             __errno_location
    - functionName:    net_accept
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          121
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - accept
        - i_panic
        - sin_get_ip
        - sin_get_port
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:625,2'
          Dst:             i_panic
        - Src:             'net.c:629,8'
          Dst:             accept
        - Src:             'net.c:638,23'
          Dst:             sin_get_ip
        - Src:             'net.c:639,33'
          Dst:             sin_get_port
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_listen_unix_unlink_stale
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - i_close_fd_path
        - i_unlink_if_exists
        - net_connect_unix
        - net_listen_unix
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:598,15'
          Dst:             net_listen_unix
        - Src:             'net.c:599,7'
          Dst:             __errno_location
        - Src:             'net.c:603,8'
          Dst:             net_connect_unix
        - Src:             'net.c:604,19'
          Dst:             __errno_location
        - Src:             'net.c:605,4'
          Dst:             i_close_fd_path
        - Src:             'net.c:606,4'
          Dst:             __errno_location
        - Src:             'net.c:611,7'
          Dst:             i_unlink_if_exists
        - Src:             'net.c:612,4'
          Dst:             __errno_location
    - functionName:    net_listen_unix
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - bind
        - i_close_fd_path
        - i_error
        - i_strocpy
        - listen
        - socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:549,6'
          Dst:             i_strocpy
        - Src:             'net.c:552,3'
          Dst:             __errno_location
        - Src:             'net.c:560,7'
          Dst:             socket
        - Src:             'net.c:562,3'
          Dst:             i_error
        - Src:             'net.c:577,6'
          Dst:             bind
        - Src:             'net.c:578,7'
          Dst:             __errno_location
        - Src:             'net.c:579,4'
          Dst:             i_error
        - Src:             'net.c:582,7'
          Dst:             listen
        - Src:             'net.c:585,7'
          Dst:             __errno_location
        - Src:             'net.c:586,4'
          Dst:             i_error
        - Src:             'net.c:589,2'
          Dst:             i_close_fd_path
    - functionName:    net_connect_unix
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - connect
        - i_close_fd_path
        - i_error
        - i_strocpy
        - net_set_nonblock
        - socket
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:312,6'
          Dst:             i_strocpy
        - Src:             'net.c:315,3'
          Dst:             __errno_location
        - Src:             'net.c:323,7'
          Dst:             socket
        - Src:             'net.c:325,3'
          Dst:             i_error
        - Src:             'net.c:329,2'
          Dst:             net_set_nonblock
        - Src:             'net.c:332,8'
          Dst:             connect
        - Src:             'net.c:333,17'
          Dst:             __errno_location
        - Src:             'net.c:334,3'
          Dst:             i_close_fd_path
    - 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:    net_listen_full
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          248
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - bind
        - getsockname
        - i_close_fd_path
        - i_error
        - listen
        - net_ip2addr
        - setsockopt
        - sin_get_port
        - sin_set_ip
        - sin_set_port
        - socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:473,2'
          Dst:             sin_set_ip
        - Src:             'net.c:474,2'
          Dst:             sin_set_port
        - Src:             'net.c:477,7'
          Dst:             socket
        - Src:             'net.c:479,7'
          Dst:             __errno_location
        - Src:             'net.c:479,26'
          Dst:             __errno_location
        - Src:             'net.c:484,8'
          Dst:             socket
        - Src:             'net.c:487,3'
          Dst:             i_error
        - Src:             'net.c:492,8'
          Dst:             setsockopt
        - Src:             'net.c:493,8'
          Dst:             setsockopt
        - Src:             'net.c:497,7'
          Dst:             setsockopt
        - Src:             'net.c:508,9'
          Dst:             setsockopt
        - Src:             'net.c:512,8'
          Dst:             bind
        - Src:             'net.c:514,7'
          Dst:             __errno_location
        - Src:             'net.c:516,26'
          Dst:             net_ip2addr
        - Src:             'net.c:515,4'
          Dst:             i_error
        - Src:             'net.c:521,9'
          Dst:             getsockname
        - Src:             'net.c:523,12'
          Dst:             sin_get_port
        - Src:             'net.c:526,8'
          Dst:             listen
        - Src:             'net.c:529,8'
          Dst:             __errno_location
        - Src:             'net.c:530,5'
          Dst:             i_error
        - Src:             'net.c:535,2'
          Dst:             i_close_fd_path
    - functionName:    net_listen
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - net_listen_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:462,9'
          Dst:             net_listen_full
    - functionName:    net_set_recv_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - setsockopt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:431,3'
          Dst:             __errno_location
        - Src:             'net.c:435,9'
          Dst:             setsockopt
    - functionName:    net_set_send_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - setsockopt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:419,3'
          Dst:             __errno_location
        - Src:             'net.c:423,9'
          Dst:             setsockopt
    - functionName:    net_set_tcp_quickack
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setsockopt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:407,9'
          Dst:             setsockopt
    - functionName:    net_set_tcp_nodelay
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setsockopt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:399,9'
          Dst:             setsockopt
    - functionName:    net_set_cork
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setsockopt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:388,9'
          Dst:             setsockopt
    - functionName:    net_disconnect
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - close
        - i_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:374,6'
          Dst:             close
        - Src:             'net.c:374,23'
          Dst:             __errno_location
        - Src:             'net.c:375,3'
          Dst:             i_error
    - functionName:    timeval_diff_msecs
      functionSourceFile: '/src/dovecot/src/lib/./time-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_diff_usecs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './time-util.h:26,9'
          Dst:             timeval_diff_usecs
    - functionName:    i_rand_minmax
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_rand_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:138,2'
          Dst:             i_panic
        - Src:             './lib.h:139,19'
          Dst:             i_rand_limit
    - functionName:    net_connect_unix_with_retries
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          73
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_gettimeofday
        - i_rand_minmax
        - net_connect_unix
        - timeval_diff_msecs
        - usleep
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:356,2'
          Dst:             i_gettimeofday
        - Src:             'net.c:359,8'
          Dst:             net_connect_unix
        - Src:             'net.c:360,20'
          Dst:             __errno_location
        - Src:             'net.c:360,39'
          Dst:             __errno_location
        - Src:             'net.c:364,10'
          Dst:             i_rand_minmax
        - Src:             'net.c:364,3'
          Dst:             usleep
        - Src:             'net.c:365,3'
          Dst:             i_gettimeofday
        - Src:             'net.c:366,11'
          Dst:             timeval_diff_msecs
    - functionName:    usleep
      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:    net_try_bind
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - bind
        - i_close_fd_path
        - i_error
        - sin_set_ip
        - socket
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:290,7'
          Dst:             socket
        - Src:             'net.c:292,3'
          Dst:             i_error
        - Src:             'net.c:296,2'
          Dst:             sin_set_ip
        - Src:             'net.c:297,6'
          Dst:             bind
        - Src:             'net.c:298,3'
          Dst:             i_close_fd_path
        - Src:             'net.c:301,2'
          Dst:             i_close_fd_path
    - functionName:    net_connect_udp
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - net_connect_ip_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:279,9'
          Dst:             net_connect_ip_full
    - functionName:    net_connect_ip_full
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - net_connect_ip_once
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:248,8'
          Dst:             net_connect_ip_once
        - Src:             'net.c:250,8'
          Dst:             __errno_location
    - functionName:    net_connect_ip_blocking
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - net_connect_ip_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:273,9'
          Dst:             net_connect_ip_full
    - functionName:    net_connect_ip
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - net_connect_ip_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:267,9'
          Dst:             net_connect_ip_full
    - functionName:    net_ip_hash
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          90
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    net_ip_cmp
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'net.c:94,2'
          Branch Sides:    []
      Callsites:
        - Src:             'net.c:96,10'
          Dst:             memcmp
        - Src:             'net.c:98,10'
          Dst:             memcmp
    - functionName:    net_ip_compare
      functionSourceFile: '/src/dovecot/src/lib/net.c'
      linkageType:     externalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - net_ip_cmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'net.c:86,9'
          Dst:             net_ip_cmp
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib/./istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './istream.h:229,2'
          Dst:             i_panic
        - Src:             './istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    o_stream_create_passthrough
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - o_stream_create
        - o_stream_get_fd
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:854,11'
          Dst:             malloc_multiply_check
        - Src:             'ostream.c:854,11'
          Dst:             p_malloc
        - Src:             'ostream.c:855,41'
          Dst:             o_stream_get_fd
        - Src:             'ostream.c:855,9'
          Dst:             o_stream_create
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    o_stream_get_fd
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_create
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          357
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - io_stream_init
        - o_stream_ref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:769,3'
          Dst:             o_stream_ref
        - Src:             'ostream.c:817,2'
          Dst:             io_stream_init
    - functionName:    o_stream_ref
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_ref
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:97,2'
          Dst:             io_stream_ref
    - functionName:    o_stream_default_close
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_close
        - o_stream_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:579,8'
          Dst:             o_stream_flush
        - Src:             'ostream.c:581,3'
          Dst:             o_stream_close
    - functionName:    o_stream_default_destroy
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:589,2'
          Dst:             o_stream_unref
    - functionName:    o_stream_default_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_set_max_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:600,3'
          Dst:             o_stream_set_max_buffer_size
    - functionName:    o_stream_default_cork
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - o_stream_cork
        - o_stream_flush
        - o_stream_uncork
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:609,4'
          Dst:             o_stream_cork
        - Src:             'ostream.c:611,9'
          Dst:             o_stream_flush
        - Src:             'ostream.c:615,4'
          Dst:             o_stream_uncork
    - functionName:    o_stream_default_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_flush_parent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:670,9'
          Dst:             o_stream_flush_parent
    - functionName:    o_stream_default_set_flush_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - o_stream_set_flush_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:679,3'
          Dst:             o_stream_set_flush_callback
    - functionName:    o_stream_default_set_flush_pending
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_set_flush_pending
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:689,3'
          Dst:             o_stream_set_flush_pending
    - functionName:    o_stream_default_get_buffer_used_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_get_buffer_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:698,10'
          Dst:             o_stream_get_buffer_used_size
    - functionName:    o_stream_default_get_buffer_avail_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_get_buffer_used_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:707,16'
          Dst:             o_stream_get_buffer_used_size
    - functionName:    o_stream_default_seek
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_default_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_copy_error_from_parent
        - o_stream_sendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:727,13'
          Dst:             o_stream_sendv
        - Src:             'ostream.c:728,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    o_stream_default_write_at
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_default_send_istream
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:748,9'
          Dst:             io_stream_copy
    - functionName:    o_stream_default_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_switch_ioloop_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:756,3'
          Dst:             o_stream_switch_ioloop_to
    - functionName:    o_stream_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_switch_ioloop_to
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:563,2'
          Dst:             io_stream_switch_ioloop_to
    - functionName:    io_stream_copy
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          82
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - i_stream_have_bytes_left
        - i_stream_read_more
        - i_stream_skip
        - o_stream_sendv
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:543,9'
          Dst:             i_stream_read_more
        - Src:             'ostream.c:545,14'
          Dst:             o_stream_sendv
        - Src:             'ostream.c:549,3'
          Dst:             i_stream_skip
        - Src:             'ostream.c:554,6'
          Dst:             i_stream_have_bytes_left
    - functionName:    i_stream_read_more
      functionSourceFile: '/src/dovecot/src/lib/./istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read_bytes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './istream.h:237,12'
          Dst:             i_stream_read_bytes
        - Src:             './istream.h:238,2'
          Dst:             i_panic
    - functionName:    o_stream_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - o_stream_sendv_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:356,3'
          Dst:             __errno_location
        - Src:             'ostream.c:359,9'
          Dst:             o_stream_sendv_int
    - functionName:    o_stream_sendv_int
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          196
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:333,2'
          Dst:             i_panic
        - Src:             'ostream.c:339,4'
          Dst:             i_panic
        - Src:             'ostream.c:340,4'
          Dst:             __errno_location
        - Src:             'ostream.c:342,4'
          Dst:             i_panic
    - functionName:    o_stream_copy_error_from_parent
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - o_stream_close
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:624,2'
          Dst:             i_panic
        - Src:             'ostream.c:629,3'
          Dst:             o_stream_close
    - functionName:    o_stream_close
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_close_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:139,3'
          Dst:             o_stream_close_full
    - functionName:    o_stream_close_full
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          147
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - io_stream_close
        - o_stream_flush
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:61,6'
          Dst:             o_stream_flush
        - Src:             'ostream.c:62,3'
          Dst:             i_panic
        - Src:             'ostream.c:75,3'
          Dst:             io_stream_close
    - functionName:    o_stream_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          139
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_panic
        - io_stream_set_error
        - o_stream_get_max_buffer_size
        - o_stream_ignore_last_errors
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:243,2'
          Dst:             o_stream_ignore_last_errors
        - Src:             'ostream.c:246,3'
          Dst:             __errno_location
        - Src:             'ostream.c:253,4'
          Dst:             o_stream_get_max_buffer_size
        - Src:             'ostream.c:251,3'
          Dst:             io_stream_set_error
        - Src:             'ostream.c:254,3'
          Dst:             __errno_location
        - Src:             'ostream.c:259,3'
          Dst:             i_panic
        - Src:             'ostream.c:260,3'
          Dst:             __errno_location
    - functionName:    o_stream_ignore_last_errors
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_get_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_get_buffer_used_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_set_flush_pending
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_set_flush_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_flush_parent
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - o_stream_copy_error_from_parent
        - o_stream_finish
        - o_stream_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:653,2'
          Dst:             i_panic
        - Src:             'ostream.c:657,9'
          Dst:             o_stream_flush
        - Src:             'ostream.c:659,9'
          Dst:             o_stream_finish
        - Src:             'ostream.c:661,3'
          Dst:             o_stream_copy_error_from_parent
    - functionName:    o_stream_finish
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_flush
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:400,9'
          Dst:             o_stream_flush
    - functionName:    o_stream_cork
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_uncork
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_set_max_buffer_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:203,2'
          Dst:             io_stream_set_max_buffer_size
    - functionName:    o_stream_unref
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - io_stream_free
        - io_stream_unref
        - o_stream_get_name
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:113,4'
          Dst:             o_stream_get_name
        - Src:             'ostream.c:112,3'
          Dst:             i_panic
        - Src:             'ostream.c:116,7'
          Dst:             io_stream_unref
        - Src:             'ostream.c:117,3'
          Dst:             io_stream_free
    - functionName:    o_stream_get_name
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_create_error_str
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_set_verror
        - o_stream_create_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:844,11'
          Dst:             o_stream_create_error
        - Src:             'ostream.c:845,2'
          Dst:             io_stream_set_verror
    - functionName:    o_stream_create_error
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - o_stream_create
        - o_stream_set_name
        - o_stream_set_no_error_handling
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:826,11'
          Dst:             malloc_multiply_check
        - Src:             'ostream.c:826,11'
          Dst:             p_malloc
        - Src:             'ostream.c:831,11'
          Dst:             o_stream_create
        - Src:             'ostream.c:832,2'
          Dst:             o_stream_set_no_error_handling
        - Src:             'ostream.c:833,2'
          Dst:             o_stream_set_name
    - functionName:    o_stream_set_no_error_handling
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_set_name
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          42
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:9,2'
          Dst:             p_free_internal
        - Src:             'ostream.c:10,39'
          Dst:             i_strdup
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_flush_parent_if_needed
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - o_stream_copy_error_from_parent
        - o_stream_flush
        - o_stream_get_buffer_used_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:634,6'
          Dst:             o_stream_get_buffer_used_size
        - Src:             'ostream.c:639,7'
          Dst:             o_stream_flush
        - Src:             'ostream.c:640,4'
          Dst:             o_stream_copy_error_from_parent
        - Src:             'ostream.c:643,7'
          Dst:             o_stream_get_buffer_used_size
    - functionName:    o_stream_switch_ioloop
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_switch_ioloop_to
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:570,2'
          Dst:             o_stream_switch_ioloop_to
    - functionName:    o_stream_get_last_write_time
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_pwrite
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:514,3'
          Dst:             __errno_location
        - Src:             'ostream.c:518,2'
          Dst:             i_panic
        - Src:             'ostream.c:524,3'
          Dst:             i_panic
        - Src:             'ostream.c:525,3'
          Dst:             __errno_location
    - functionName:    o_stream_nsend_istream
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - i_panic
        - i_stream_get_error
        - i_stream_get_name
        - i_unreached
        - io_stream_set_error
        - o_stream_send_istream
      functionUses:    0
      BranchProfiles:
        - Branch String:   'ostream.c:487,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ostream.c:485,2'
          Dst:             i_panic
        - Src:             'ostream.c:487,10'
          Dst:             o_stream_send_istream
        - Src:             'ostream.c:491,3'
          Dst:             i_unreached
        - Src:             'ostream.c:499,4'
          Dst:             i_stream_get_name
        - Src:             'ostream.c:500,4'
          Dst:             i_stream_get_error
        - Src:             'ostream.c:497,3'
          Dst:             io_stream_set_error
    - functionName:    o_stream_send_istream
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          355
      EdgeCount:       64
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - i_panic
        - i_stream_have_bytes_left
        - o_stream_set_flush_pending
      functionUses:    2
      BranchProfiles:
        - Branch String:   'ostream.c:454,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ostream.c:444,3'
          Dst:             __errno_location
        - Src:             'ostream.c:448,3'
          Dst:             __errno_location
        - Src:             'ostream.c:452,2'
          Dst:             i_panic
        - Src:             'ostream.c:456,3'
          Dst:             i_panic
        - Src:             'ostream.c:457,3'
          Dst:             i_panic
        - Src:             'ostream.c:458,3'
          Dst:             i_stream_have_bytes_left
        - Src:             'ostream.c:458,3'
          Dst:             i_panic
        - Src:             'ostream.c:461,3'
          Dst:             i_panic
        - Src:             'ostream.c:464,3'
          Dst:             i_panic
        - Src:             'ostream.c:465,3'
          Dst:             o_stream_set_flush_pending
        - Src:             'ostream.c:468,3'
          Dst:             i_panic
        - Src:             'ostream.c:471,3'
          Dst:             i_panic
        - Src:             'ostream.c:475,2'
          Dst:             i_panic
    - functionName:    o_stream_abort
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_stream_set_error
        - o_stream_ignore_last_errors
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:423,2'
          Dst:             o_stream_ignore_last_errors
        - Src:             'ostream.c:426,2'
          Dst:             io_stream_set_error
    - functionName:    o_stream_set_finish_via_child
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_set_finish_also_parent
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_nsend_str
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsend
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:394,30'
          Dst:             strlen
        - Src:             'ostream.c:394,2'
          Dst:             o_stream_nsend
    - functionName:    o_stream_nsend
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_nsendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:375,2'
          Dst:             o_stream_nsendv
    - functionName:    o_stream_nsendv
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - o_stream_sendv_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:386,8'
          Dst:             o_stream_sendv_int
    - functionName:    o_stream_send_str
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_send
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:364,36'
          Dst:             strlen
        - Src:             'ostream.c:364,9'
          Dst:             o_stream_send
    - functionName:    o_stream_send
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_sendv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:314,10'
          Dst:             o_stream_sendv
    - functionName:    o_stream_seek
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:294,3'
          Dst:             __errno_location
        - Src:             'ostream.c:299,3'
          Dst:             i_panic
        - Src:             'ostream.c:300,3'
          Dst:             __errno_location
    - functionName:    o_stream_get_buffer_avail_size
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_is_corked
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_get_flush_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_unset_flush_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_default_buffering_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - o_stream_flush
        - o_stream_ref
        - o_stream_set_flush_pending
        - o_stream_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:148,13'
          Dst:             o_stream_flush
        - Src:             'ostream.c:152,2'
          Dst:             o_stream_ref
        - Src:             'ostream.c:156,10'
          Dst:             o_stream_flush
        - Src:             'ostream.c:158,3'
          Dst:             o_stream_set_flush_pending
        - Src:             'ostream.c:159,2'
          Dst:             o_stream_unref
    - functionName:    o_stream_init_buffering_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_default_buffering_flush
        - o_stream_set_flush_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:172,2'
          Dst:             o_stream_set_flush_callback
        - Src:             'ostream.c:172,2'
          Dst:             o_stream_default_buffering_flush
    - functionName:    o_stream_remove_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_remove_destroy_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:132,2'
          Dst:             io_stream_remove_destroy_callback
    - functionName:    o_stream_add_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_add_destroy_callback
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:125,2'
          Dst:             io_stream_add_destroy_callback
    - functionName:    o_stream_destroy
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_close_full
        - o_stream_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:91,2'
          Dst:             o_stream_close_full
        - Src:             'ostream.c:92,2'
          Dst:             o_stream_unref
    - functionName:    o_stream_get_disconnect_reason
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_get_disconnect_reason
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:48,9'
          Dst:             io_stream_get_disconnect_reason
    - functionName:    o_stream_get_error
      functionSourceFile: '/src/dovecot/src/lib/ostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream.c:43,9'
          Dst:             strerror
    - functionName:    i_stream_read_bytes
      functionSourceFile: '/src/dovecot/src/lib/./istream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_read_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './istream.h:229,2'
          Dst:             i_panic
        - Src:             './istream.h:230,9'
          Dst:             i_stream_read_data
    - functionName:    io_stream_copy_backwards
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          347
      EdgeCount:       54
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - i_memcpy
        - i_panic
        - i_stream_read_bytes
        - i_stream_seek
        - i_stream_skip
        - i_unreached
        - o_stream_grow_buffer
        - pwrite_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:893,2'
          Dst:             i_panic
        - Src:             'ostream-file.c:899,4'
          Dst:             o_stream_grow_buffer
        - Src:             'ostream-file.c:920,4'
          Dst:             i_panic
        - Src:             'ostream-file.c:922,4'
          Dst:             i_stream_seek
        - Src:             'ostream-file.c:926,8'
          Dst:             i_stream_read_bytes
        - Src:             'ostream-file.c:928,5'
          Dst:             i_unreached
        - Src:             'ostream-file.c:934,6'
          Dst:             i_panic
        - Src:             'ostream-file.c:936,6'
          Dst:             i_memcpy
        - Src:             'ostream-file.c:950,9'
          Dst:             pwrite_full
        - Src:             'ostream-file.c:953,38'
          Dst:             __errno_location
        - Src:             'ostream-file.c:956,3'
          Dst:             i_stream_skip
        - Src:             'ostream-file.c:959,2'
          Dst:             i_stream_seek
    - functionName:    o_stream_grow_buffer
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          202
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - i_realloc
        - nearest_power
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:510,9'
          Dst:             nearest_power
        - Src:             'ostream-file.c:525,20'
          Dst:             i_realloc
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    io_stream_copy_same_stream
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_stream_get_absolute_offset
        - i_stream_get_size
        - io_stream_copy
        - io_stream_copy_backwards
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:975,13'
          Dst:             i_stream_get_size
        - Src:             'ostream-file.c:982,10'
          Dst:             io_stream_copy
        - Src:             'ostream-file.c:984,2'
          Dst:             i_panic
        - Src:             'ostream-file.c:986,18'
          Dst:             i_stream_get_absolute_offset
        - Src:             'ostream-file.c:995,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:996,10'
          Dst:             io_stream_copy_backwards
        - Src:             'ostream-file.c:999,10'
          Dst:             io_stream_copy
    - functionName:    io_stream_sendfile
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          327
      EdgeCount:       67
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - buffer_flush
        - i_panic
        - i_stream_get_absolute_offset
        - i_stream_get_size
        - i_stream_seek
        - io_stream_set_error
        - o_stream_lseek
        - o_stream_socket_cork
        - safe_sendfile
        - stream_closed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:795,13'
          Dst:             i_stream_get_size
        - Src:             'ostream-file.c:804,2'
          Dst:             o_stream_socket_cork
        - Src:             'ostream-file.c:807,13'
          Dst:             buffer_flush
        - Src:             'ostream-file.c:815,6'
          Dst:             o_stream_lseek
        - Src:             'ostream-file.c:821,21'
          Dst:             i_stream_get_absolute_offset
        - Src:             'ostream-file.c:826,9'
          Dst:             safe_sendfile
        - Src:             'ostream-file.c:831,5'
          Dst:             i_stream_seek
        - Src:             'ostream-file.c:837,9'
          Dst:             __errno_location
        - Src:             'ostream-file.c:842,9'
          Dst:             __errno_location
        - Src:             'ostream-file.c:842,27'
          Dst:             __errno_location
        - Src:             'ostream-file.c:847,8'
          Dst:             __errno_location
        - Src:             'ostream-file.c:850,5'
          Dst:             io_stream_set_error
        - Src:             'ostream-file.c:852,39'
          Dst:             __errno_location
        - Src:             'ostream-file.c:855,5'
          Dst:             stream_closed
        - Src:             'ostream-file.c:866,2'
          Dst:             i_stream_seek
        - Src:             'ostream-file.c:872,2'
          Dst:             i_panic
    - functionName:    o_stream_socket_cork
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - net_set_cork
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:122,8'
          Dst:             net_set_cork
    - functionName:    buffer_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - i_realloc
        - o_stream_file_writev_full
        - o_stream_fill_iovec
        - update_buffer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:354,12'
          Dst:             o_stream_fill_iovec
        - Src:             'ostream-file.c:356,9'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:360,3'
          Dst:             update_buffer
        - Src:             'ostream-file.c:367,21'
          Dst:             i_realloc
    - functionName:    o_stream_lseek
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - io_stream_set_error
        - lseek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:137,8'
          Dst:             lseek
        - Src:             'ostream-file.c:139,3'
          Dst:             io_stream_set_error
        - Src:             'ostream-file.c:141,43'
          Dst:             __errno_location
        - Src:             'ostream-file.c:146,3'
          Dst:             io_stream_set_error
    - functionName:    stream_closed
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - i_error
        - io_remove
        - iostream_fd_unref
        - o_stream_get_name
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:36,2'
          Dst:             io_remove
        - Src:             'ostream-file.c:39,3'
          Dst:             iostream_fd_unref
        - Src:             'ostream-file.c:44,7'
          Dst:             close
        - Src:             'ostream-file.c:44,7'
          Dst:             __errno_location
        - Src:             'ostream-file.c:46,5'
          Dst:             o_stream_get_name
        - Src:             'ostream-file.c:45,4'
          Dst:             i_error
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_fill_iovec
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          126
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_file_writev_full
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          491
      EdgeCount:       102
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - i_panic
        - io_stream_set_error
        - net_set_tcp_nodelay
        - o_stream_file_writev_full
        - o_stream_socket_cork
        - stream_closed
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:242,2'
          Dst:             o_stream_socket_cork
        - Src:             'ostream-file.c:246,7'
          Dst:             net_set_tcp_nodelay
        - Src:             'ostream-file.c:260,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:262,8'
          Dst:             __errno_location
        - Src:             'ostream-file.c:264,12'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:266,14'
          Dst:             __errno_location
        - Src:             'ostream-file.c:266,33'
          Dst:             __errno_location
        - Src:             'ostream-file.c:270,3'
          Dst:             io_stream_set_error
        - Src:             'ostream-file.c:271,43'
          Dst:             __errno_location
        - Src:             'ostream-file.c:272,3'
          Dst:             stream_closed
        - Src:             'ostream-file.c:278,3'
          Dst:             stream_closed
        - Src:             'ostream-file.c:292,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:294,11'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:302,11'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:304,5'
          Dst:             i_panic
        - Src:             'ostream-file.c:308,13'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:313,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:319,2'
          Dst:             i_panic
    - functionName:    update_buffer
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          202
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:95,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:102,4'
          Dst:             i_panic
    - functionName:    o_stream_file_update_buffer
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          159
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:705,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:712,2'
          Dst:             i_memcpy
        - Src:             'ostream-file.c:719,3'
          Dst:             i_memcpy
    - functionName:    file_buffer_get_used_size
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_tcp_flush_via_nodelay
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - net_set_tcp_nodelay
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:377,6'
          Dst:             net_set_tcp_nodelay
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_send_io
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          196
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - io_add_to
        - io_remove
        - io_stream_get_ioloop
        - o_stream_cork
        - o_stream_file_flush
        - o_stream_ref
        - o_stream_uncork
        - o_stream_unref
        - stream_send_io
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:553,2'
          Dst:             o_stream_ref
        - Src:             'ostream-file.c:555,3'
          Dst:             o_stream_cork
        - Src:             'ostream-file.c:559,9'
          Dst:             o_stream_file_flush
        - Src:             'ostream-file.c:561,3'
          Dst:             o_stream_uncork
        - Src:             'ostream-file.c:567,3'
          Dst:             io_remove
        - Src:             'ostream-file.c:573,18'
          Dst:             io_stream_get_ioloop
        - Src:             'ostream-file.c:573,18'
          Dst:             io_add_to
        - Src:             'ostream-file.c:573,18'
          Dst:             stream_send_io
        - Src:             'ostream-file.c:579,2'
          Dst:             o_stream_unref
    - functionName:    o_stream_file_flush
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_flush
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:443,9'
          Dst:             buffer_flush
    - functionName:    o_stream_create_fd_blocking
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - o_stream_create_file_common
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1208,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-file.c:1208,12'
          Dst:             p_malloc
        - Src:             'ostream-file.c:1209,12'
          Dst:             o_stream_create_file_common
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    o_stream_create_file_common
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          119
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - o_stream_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1068,12'
          Dst:             o_stream_create
    - functionName:    o_stream_file_close
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_closed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:60,2'
          Dst:             stream_closed
    - functionName:    o_stream_file_destroy
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:68,2'
          Dst:             p_free_internal
    - functionName:    o_stream_file_cork
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          308
      EdgeCount:       72
      CyclomaticComplexity: 20
      functionsReached:
        - buffer_flush
        - i_panic
        - io_add_to
        - io_remove
        - io_stream_get_ioloop
        - net_set_cork
        - net_set_tcp_quickack
        - o_stream_tcp_flush_via_nodelay
        - stream_send_io
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:398,4'
          Dst:             io_remove
        - Src:             'ostream-file.c:401,10'
          Dst:             buffer_flush
        - Src:             'ostream-file.c:406,19'
          Dst:             io_stream_get_ioloop
        - Src:             'ostream-file.c:406,19'
          Dst:             io_add_to
        - Src:             'ostream-file.c:406,19'
          Dst:             stream_send_io
        - Src:             'ostream-file.c:418,4'
          Dst:             i_panic
        - Src:             'ostream-file.c:419,8'
          Dst:             net_set_cork
        - Src:             'ostream-file.c:426,4'
          Dst:             o_stream_tcp_flush_via_nodelay
        - Src:             'ostream-file.c:431,8'
          Dst:             net_set_tcp_quickack
    - functionName:    o_stream_file_flush_pending
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - io_add_to
        - io_stream_get_ioloop
        - stream_send_io
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:455,17'
          Dst:             io_stream_get_ioloop
        - Src:             'ostream-file.c:455,17'
          Dst:             io_add_to
        - Src:             'ostream-file.c:455,17'
          Dst:             stream_send_io
    - functionName:    o_stream_file_get_buffer_used_size
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_unused_space
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:481,32'
          Dst:             get_unused_space
    - functionName:    o_stream_file_seek
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:498,6'
          Dst:             buffer_flush
    - functionName:    o_stream_file_sendv
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          443
      EdgeCount:       87
      CyclomaticComplexity: 21
      functionsReached:
        - get_unused_space
        - i_panic
        - o_stream_add
        - o_stream_file_flush
        - o_stream_file_writev_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:644,13'
          Dst:             get_unused_space
        - Src:             'ostream-file.c:645,7'
          Dst:             o_stream_file_flush
        - Src:             'ostream-file.c:654,9'
          Dst:             o_stream_file_writev_full
        - Src:             'ostream-file.c:666,4'
          Dst:             i_panic
        - Src:             'ostream-file.c:668,12'
          Dst:             o_stream_add
        - Src:             'ostream-file.c:686,11'
          Dst:             o_stream_add
        - Src:             'ostream-file.c:692,2'
          Dst:             i_panic
        - Src:             'ostream-file.c:693,2'
          Dst:             i_panic
    - functionName:    o_stream_file_write_at
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          208
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - file_buffer_get_used_size
        - o_stream_file_flush
        - o_stream_file_update_buffer
        - pwrite_full
        - stream_closed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:734,9'
          Dst:             file_buffer_get_used_size
        - Src:             'ostream-file.c:746,10'
          Dst:             o_stream_file_update_buffer
        - Src:             'ostream-file.c:773,6'
          Dst:             o_stream_file_flush
        - Src:             'ostream-file.c:776,6'
          Dst:             pwrite_full
        - Src:             'ostream-file.c:777,34'
          Dst:             __errno_location
        - Src:             'ostream-file.c:778,3'
          Dst:             stream_closed
    - functionName:    o_stream_file_send_istream
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          150
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - i_stream_get_fd
        - io_stream_copy
        - io_stream_copy_same_stream
        - io_stream_sendfile
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1013,40'
          Dst:             i_stream_get_fd
        - Src:             'ostream-file.c:1016,7'
          Dst:             io_stream_sendfile
        - Src:             'ostream-file.c:1024,16'
          Dst:             i_stream_get_fd
        - Src:             'ostream-file.c:1027,10'
          Dst:             io_stream_copy
        - Src:             'ostream-file.c:1028,9'
          Dst:             io_stream_copy_same_stream
    - functionName:    o_stream_file_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - io_loop_move_io_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1038,17'
          Dst:             io_loop_move_io_to
    - functionName:    o_stream_file_writev
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          344
      EdgeCount:       72
      CyclomaticComplexity: 17
      functionsReached:
        - i_panic
        - o_stream_get_error
        - o_stream_lseek
        - pwrite
        - t_strdup
        - t_strdup_printf
        - write
        - writev
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:166,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:171,10'
          Dst:             write
        - Src:             'ostream-file.c:176,10'
          Dst:             pwrite
        - Src:             'ostream-file.c:180,7'
          Dst:             o_stream_lseek
        - Src:             'ostream-file.c:181,24'
          Dst:             o_stream_get_error
        - Src:             'ostream-file.c:181,15'
          Dst:             t_strdup
        - Src:             'ostream-file.c:192,10'
          Dst:             writev
        - Src:             'ostream-file.c:209,10'
          Dst:             writev
        - Src:             'ostream-file.c:222,3'
          Dst:             i_panic
        - Src:             'ostream-file.c:223,14'
          Dst:             t_strdup_printf
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_unused_space
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    o_stream_add
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          284
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - get_unused_space
        - i_memcpy
        - io_add_to
        - io_stream_get_ioloop
        - o_stream_grow_buffer
        - stream_send_io
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:589,11'
          Dst:             get_unused_space
        - Src:             'ostream-file.c:591,3'
          Dst:             o_stream_grow_buffer
        - Src:             'ostream-file.c:607,3'
          Dst:             i_memcpy
        - Src:             'ostream-file.c:622,17'
          Dst:             io_stream_get_ioloop
        - Src:             'ostream-file.c:622,17'
          Dst:             io_add_to
        - Src:             'ostream-file.c:622,17'
          Dst:             stream_send_io
    - functionName:    o_stream_create_file
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - o_stream_create_error
        - o_stream_create_fd_file_autoclose
        - open
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1198,12'
          Dst:             open
        - Src:             'ostream-file.c:1199,32'
          Dst:             __errno_location
        - Src:             'ostream-file.c:1199,10'
          Dst:             o_stream_create_error
        - Src:             'ostream-file.c:1200,9'
          Dst:             o_stream_create_fd_file_autoclose
    - functionName:    o_stream_create_fd_file_autoclose
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_create_fd_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1184,11'
          Dst:             o_stream_create_fd_file
    - functionName:    o_stream_create_fd_file
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1163
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fstream_init_file
        - lseek
        - malloc_multiply_check
        - o_stream_create_file_common
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1168,12'
          Dst:             lseek
        - Src:             'ostream-file.c:1170,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-file.c:1170,12'
          Dst:             p_malloc
        - Src:             'ostream-file.c:1171,12'
          Dst:             o_stream_create_file_common
        - Src:             'ostream-file.c:1172,2'
          Dst:             fstream_init_file
    - functionName:    fstream_init_file
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1077
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fstat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1081,6'
          Dst:             fstat
    - functionName:    o_stream_create_fd_ref_autoclose
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1157
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_create_fd_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1158,9'
          Dst:             o_stream_create_fd_common
    - functionName:    o_stream_create_fd_common
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1101
      functionLinenumberEnd: 1137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          146
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - fstream_init_file
        - iostream_fd_ref
        - lseek
        - malloc_multiply_check
        - net_getsockname
        - o_stream_create_file_common
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1106,12'
          Dst:             malloc_multiply_check
        - Src:             'ostream-file.c:1106,12'
          Dst:             p_malloc
        - Src:             'ostream-file.c:1109,3'
          Dst:             iostream_fd_ref
        - Src:             'ostream-file.c:1111,12'
          Dst:             o_stream_create_file_common
        - Src:             'ostream-file.c:1114,11'
          Dst:             lseek
        - Src:             'ostream-file.c:1119,3'
          Dst:             fstream_init_file
        - Src:             'ostream-file.c:1123,7'
          Dst:             net_getsockname
    - functionName:    o_stream_create_fd_autoclose
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_create_fd_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1149,28'
          Dst:             o_stream_create_fd_common
    - functionName:    o_stream_create_fd
      functionSourceFile: '/src/dovecot/src/lib/ostream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - o_stream_create_fd_common
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ostream-file.c:1143,9'
          Dst:             o_stream_create_fd_common
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    t_binary_abspath
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - access
        - getenv
        - str_append
        - str_append_c
        - str_c
        - str_truncate
        - strchr
        - t_abspath
        - t_str_new
        - t_strdup_printf
        - t_strsplit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:369,13'
          Dst:             strchr
        - Src:             'path-util.c:372,7'
          Dst:             t_abspath
        - Src:             'path-util.c:373,15'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:378,25'
          Dst:             getenv
        - Src:             'path-util.c:380,10'
          Dst:             t_str_new
        - Src:             'path-util.c:381,11'
          Dst:             t_strsplit
        - Src:             'path-util.c:383,4'
          Dst:             str_append
        - Src:             'path-util.c:384,4'
          Dst:             str_append_c
        - Src:             'path-util.c:385,4'
          Dst:             str_append
        - Src:             'path-util.c:386,15'
          Dst:             str_c
        - Src:             'path-util.c:386,8'
          Dst:             access
        - Src:             'path-util.c:387,16'
          Dst:             str_c
        - Src:             'path-util.c:390,4'
          Dst:             str_truncate
    - functionName:    t_abspath
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - t_get_working_dir
        - t_strconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:292,2'
          Dst:             i_panic
        - Src:             'path-util.c:293,2'
          Dst:             i_panic
        - Src:             'path-util.c:294,2'
          Dst:             i_panic
        - Src:             'path-util.c:302,6'
          Dst:             t_get_working_dir
        - Src:             'path-util.c:303,14'
          Dst:             t_strconcat
        - Src:             'path-util.c:307,15'
          Dst:             t_strconcat
    - functionName:    access
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_get_working_dir
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - strlen
        - t_buffer_alloc
        - t_getcwd_noalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:326,2'
          Dst:             i_panic
        - Src:             'path-util.c:327,2'
          Dst:             i_panic
        - Src:             'path-util.c:328,6'
          Dst:             t_getcwd_noalloc
        - Src:             'path-util.c:331,17'
          Dst:             strlen
        - Src:             'path-util.c:331,2'
          Dst:             t_buffer_alloc
    - functionName:    t_getcwd_noalloc
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - getcwd
        - nearest_power
        - t_buffer_get
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:21,8'
          Dst:             t_buffer_get
        - Src:             'path-util.c:22,9'
          Dst:             getcwd
        - Src:             'path-util.c:23,7'
          Dst:             __errno_location
        - Src:             'path-util.c:24,15'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:27,11'
          Dst:             nearest_power
        - Src:             'path-util.c:28,9'
          Dst:             t_buffer_get
    - 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:    t_readlink
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - nearest_power
        - readlink
        - t_buffer_alloc
        - t_buffer_get
        - t_strdup_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:338,2'
          Dst:             i_panic
        - Src:             'path-util.c:345,9'
          Dst:             t_buffer_get
        - Src:             'path-util.c:346,16'
          Dst:             readlink
        - Src:             'path-util.c:347,10'
          Dst:             nearest_power
        - Src:             'path-util.c:348,10'
          Dst:             t_buffer_get
        - Src:             'path-util.c:351,14'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:356,2'
          Dst:             t_buffer_alloc
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_abspath_to
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:313,2'
          Dst:             i_panic
        - Src:             'path-util.c:314,2'
          Dst:             i_panic
        - Src:             'path-util.c:319,9'
          Dst:             t_strconcat
    - functionName:    t_realpath_to
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_realpath
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:280,2'
          Dst:             i_panic
        - Src:             'path-util.c:281,2'
          Dst:             i_panic
        - Src:             'path-util.c:282,2'
          Dst:             i_panic
        - Src:             'path-util.c:285,10'
          Dst:             t_realpath
        - Src:             'path-util.c:287,20'
          Dst:             t_strconcat
        - Src:             'path-util.c:287,9'
          Dst:             t_realpath
    - functionName:    t_realpath
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - path_normalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:274,9'
          Dst:             path_normalize
    - functionName:    path_normalize
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         210
      ICount:          1220
      EdgeCount:       248
      CyclomaticComplexity: 40
      functionsReached:
        - __errno_location
        - i_memcpy
        - i_panic
        - lstat
        - malloc_add_check
        - nearest_power
        - readlink
        - strlen
        - t_buffer_alloc
        - t_buffer_get
        - t_buffer_reget
        - t_getcwd_noalloc
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:45,2'
          Dst:             i_panic
        - Src:             'path-util.c:46,2'
          Dst:             i_panic
        - Src:             'path-util.c:47,2'
          Dst:             i_panic
        - Src:             'path-util.c:51,7'
          Dst:             t_getcwd_noalloc
        - Src:             'path-util.c:53,23'
          Dst:             strlen
        - Src:             'path-util.c:54,3'
          Dst:             i_panic
        - Src:             'path-util.c:58,11'
          Dst:             t_buffer_get
        - Src:             'path-util.c:84,4'
          Dst:             i_panic
        - Src:             'path-util.c:92,4'
          Dst:             i_panic
        - Src:             'path-util.c:95,27'
          Dst:             malloc_add_check
        - Src:             'path-util.c:95,27'
          Dst:             malloc_add_check
        - Src:             'path-util.c:95,13'
          Dst:             nearest_power
        - Src:             'path-util.c:96,13'
          Dst:             t_buffer_reget
        - Src:             'path-util.c:101,4'
          Dst:             i_panic
        - Src:             'path-util.c:103,5'
          Dst:             i_panic
        - Src:             'path-util.c:108,4'
          Dst:             i_panic
        - Src:             'path-util.c:109,4'
          Dst:             i_panic
        - Src:             'path-util.c:117,8'
          Dst:             lstat
        - Src:             'path-util.c:118,16'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:125,32'
          Dst:             strlen
        - Src:             'path-util.c:131,6'
          Dst:             __errno_location
        - Src:             'path-util.c:143,5'
          Dst:             i_panic
        - Src:             'path-util.c:146,28'
          Dst:             malloc_add_check
        - Src:             'path-util.c:146,28'
          Dst:             malloc_add_check
        - Src:             'path-util.c:146,14'
          Dst:             nearest_power
        - Src:             'path-util.c:148,14'
          Dst:             t_buffer_reget
        - Src:             'path-util.c:154,6'
          Dst:             i_panic
        - Src:             'path-util.c:155,6'
          Dst:             i_panic
        - Src:             'path-util.c:163,6'
          Dst:             i_panic
        - Src:             'path-util.c:164,6'
          Dst:             i_panic
        - Src:             'path-util.c:167,15'
          Dst:             readlink
        - Src:             'path-util.c:168,18'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:181,7'
          Dst:             __errno_location
        - Src:             'path-util.c:190,6'
          Dst:             i_panic
        - Src:             'path-util.c:194,29'
          Dst:             malloc_add_check
        - Src:             'path-util.c:194,29'
          Dst:             malloc_add_check
        - Src:             'path-util.c:194,15'
          Dst:             nearest_power
        - Src:             'path-util.c:196,15'
          Dst:             t_buffer_reget
        - Src:             'path-util.c:202,5'
          Dst:             i_panic
        - Src:             'path-util.c:204,6'
          Dst:             i_panic
        - Src:             'path-util.c:205,6'
          Dst:             i_panic
        - Src:             'path-util.c:206,6'
          Dst:             i_panic
        - Src:             'path-util.c:207,6'
          Dst:             i_memcpy
        - Src:             'path-util.c:209,6'
          Dst:             i_panic
        - Src:             'path-util.c:210,6'
          Dst:             i_memcpy
        - Src:             'path-util.c:222,6'
          Dst:             i_panic
        - Src:             'path-util.c:232,5'
          Dst:             __errno_location
        - Src:             'path-util.c:233,16'
          Dst:             t_strdup_printf
        - Src:             'path-util.c:241,2'
          Dst:             i_panic
        - Src:             'path-util.c:242,2'
          Dst:             i_panic
        - Src:             'path-util.c:249,2'
          Dst:             t_buffer_alloc
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    t_normpath_to
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - t_normpath
        - t_strconcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:262,2'
          Dst:             i_panic
        - Src:             'path-util.c:263,2'
          Dst:             i_panic
        - Src:             'path-util.c:264,2'
          Dst:             i_panic
        - Src:             'path-util.c:267,10'
          Dst:             t_normpath
        - Src:             'path-util.c:269,20'
          Dst:             t_strconcat
        - Src:             'path-util.c:269,9'
          Dst:             t_normpath
    - functionName:    t_normpath
      functionSourceFile: '/src/dovecot/src/lib/path-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - path_normalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'path-util.c:256,9'
          Dst:             path_normalize
    - functionName:    primes_closest
      functionSourceFile: '/src/dovecot/src/lib/primes.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fix_format_real
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          135
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - i_panic
        - strerror
        - strlen
        - t_buffer_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'printf-format-fix.c:17,2'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:18,2'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:20,20'
          Dst:             __errno_location
        - Src:             'printf-format-fix.c:20,11'
          Dst:             strerror
        - Src:             'printf-format-fix.c:26,9'
          Dst:             strlen
        - Src:             'printf-format-fix.c:27,9'
          Dst:             strlen
        - Src:             'printf-format-fix.c:30,8'
          Dst:             t_buffer_get
    - functionName:    verify_length
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    printf_format_fix_unsafe
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - printf_format_fix_noalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'printf-format-fix.c:195,9'
          Dst:             printf_format_fix_noalloc
    - functionName:    printf_format_fix_noalloc
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          319
      EdgeCount:       59
      CyclomaticComplexity: 7
      functionsReached:
        - fix_format_real
        - i_panic
        - strchr
        - strlen
        - verify_length
      functionUses:    3
      BranchProfiles:
        - Branch String:   'printf-format-fix.c:127,3'
          Branch Sides:    []
        - Branch String:   'printf-format-fix.c:146,4'
          Branch Sides:    []
      Callsites:
        - Src:             'printf-format-fix.c:84,15'
          Dst:             strchr
        - Src:             'printf-format-fix.c:100,18'
          Dst:             strchr
        - Src:             'printf-format-fix.c:104,5'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:112,8'
          Dst:             verify_length
        - Src:             'printf-format-fix.c:113,4'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:120,9'
          Dst:             verify_length
        - Src:             'printf-format-fix.c:121,5'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:145,21'
          Dst:             strchr
        - Src:             'printf-format-fix.c:148,5'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:151,6'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:152,11'
          Dst:             fix_format_real
        - Src:             'printf-format-fix.c:155,5'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:158,5'
          Dst:             i_panic
        - Src:             'printf-format-fix.c:166,25'
          Dst:             strlen
    - functionName:    printf_format_fix
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     externalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - printf_format_fix_noalloc
        - t_buffer_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'printf-format-fix.c:185,8'
          Dst:             printf_format_fix_noalloc
        - Src:             'printf-format-fix.c:187,3'
          Dst:             t_buffer_alloc
    - functionName:    printf_format_fix_get_len
      functionSourceFile: '/src/dovecot/src/lib/printf-format-fix.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - printf_format_fix_noalloc
        - t_buffer_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'printf-format-fix.c:174,8'
          Dst:             printf_format_fix_noalloc
        - Src:             'printf-format-fix.c:176,3'
          Dst:             t_buffer_alloc
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    process_title_deinit
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     externalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - env_get_environ_p
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:182,22'
          Dst:             env_get_environ_p
        - Src:             'process-title.c:197,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_title_get_counter
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     externalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_title_get
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    proctitle_hack_set
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:109,15'
          Dst:             strlen
        - Src:             'process-title.c:115,2'
          Dst:             i_memcpy
    - functionName:    process_title_set
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_strdup
        - p_free_internal
        - proctitle_hack_set
        - t_pop
        - t_push
        - t_strconcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:152,2'
          Dst:             i_panic
        - Src:             'process-title.c:155,2'
          Dst:             p_free_internal
        - Src:             'process-title.c:156,26'
          Dst:             i_strdup
        - Src:             'process-title.c:163,2'
          Dst:             t_push
        - Src:             'process-title.c:164,22'
          Dst:             t_strconcat
        - Src:             'process-title.c:164,3'
          Dst:             proctitle_hack_set
        - Src:             'process-title.c:165,4'
          Dst:             t_pop
        - Src:             'process-title.c:165,4'
          Dst:             i_panic
    - functionName:    proctitle_hack_init
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          204
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:44,2'
          Dst:             i_panic
        - Src:             'process-title.c:49,19'
          Dst:             strlen
        - Src:             'process-title.c:52,21'
          Dst:             strlen
        - Src:             'process-title.c:60,21'
          Dst:             strlen
    - functionName:    argv_dup
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          157
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - i_fatal_status
        - i_memcpy
        - i_panic
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:84,19'
          Dst:             strlen
        - Src:             'process-title.c:89,3'
          Dst:             i_fatal_status
        - Src:             'process-title.c:98,9'
          Dst:             strlen
        - Src:             'process-title.c:99,3'
          Dst:             i_memcpy
        - Src:             'process-title.c:102,2'
          Dst:             i_panic
    - functionName:    process_title_init
      functionSourceFile: '/src/dovecot/src/lib/process-title.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - argv_dup
        - env_get_environ_p
        - proctitle_hack_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'process-title.c:136,22'
          Dst:             env_get_environ_p
        - Src:             'process-title.c:140,10'
          Dst:             argv_dup
        - Src:             'process-title.c:141,15'
          Dst:             argv_dup
        - Src:             'process-title.c:142,2'
          Dst:             proctitle_hack_init
    - functionName:    heap_item_bubble_down
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - array_get_modifiable_i
        - heap_items_swap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:91,10'
          Dst:             array_get_modifiable_i
        - Src:             'priorityq.c:104,3'
          Dst:             heap_items_swap
    - functionName:    array_get_modifiable_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
        - buffer_get_modifiable_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:307,13'
          Dst:             array_count_i
        - Src:             './array.h:308,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    heap_items_swap
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:53,2'
          Dst:             i_panic
        - Src:             'priorityq.c:54,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    priorityq_items
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:167,6'
          Dst:             array_count_i
        - Src:             'priorityq.c:170,9'
          Dst:             array_idx_i
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    priorityq_pop
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - priorityq_peek
        - priorityq_remove_idx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:157,9'
          Dst:             priorityq_peek
        - Src:             'priorityq.c:159,3'
          Dst:             priorityq_remove_idx
    - functionName:    priorityq_peek
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:146,6'
          Dst:             array_count_i
        - Src:             'priorityq.c:149,10'
          Dst:             array_idx_i
    - functionName:    priorityq_remove_idx
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - array_delete_i
        - array_get_modifiable_i
        - heap_item_bubble_down
        - heap_item_bubble_up
        - heap_items_swap
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:121,10'
          Dst:             array_get_modifiable_i
        - Src:             'priorityq.c:122,2'
          Dst:             i_panic
        - Src:             'priorityq.c:126,2'
          Dst:             heap_items_swap
        - Src:             'priorityq.c:127,2'
          Dst:             array_delete_i
        - Src:             'priorityq.c:131,10'
          Dst:             heap_item_bubble_up
        - Src:             'priorityq.c:132,3'
          Dst:             heap_item_bubble_down
    - functionName:    heap_item_bubble_up
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - array_get_modifiable_i
        - heap_items_swap
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:71,10'
          Dst:             array_get_modifiable_i
        - Src:             'priorityq.c:75,3'
          Dst:             i_panic
        - Src:             'priorityq.c:80,3'
          Dst:             heap_items_swap
    - functionName:    priorityq_remove
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - priorityq_remove_idx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:138,2'
          Dst:             priorityq_remove_idx
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    priorityq_add
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_append_i
        - array_count_i
        - heap_item_bubble_up
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:111,14'
          Dst:             array_count_i
        - Src:             'priorityq.c:112,2'
          Dst:             array_append_i
        - Src:             'priorityq.c:113,8'
          Dst:             heap_item_bubble_up
    - functionName:    priorityq_count
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:44,9'
          Dst:             array_count_i
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    priorityq_deinit
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - array_free_i
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:38,2'
          Dst:             array_free_i
        - Src:             'priorityq.c:39,2'
          Dst:             p_free_internal
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    priorityq_init
      functionSourceFile: '/src/dovecot/src/lib/priorityq.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'priorityq.c:27,7'
          Dst:             malloc_multiply_check
        - Src:             'priorityq.c:27,7'
          Dst:             p_malloc
        - Src:             'priorityq.c:29,2'
          Dst:             array_create_i
    - functionName:    random_open_urandom
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fd_close_on_exec
        - i_fatal
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'randgen.c:74,15'
          Dst:             open
        - Src:             'randgen.c:76,7'
          Dst:             __errno_location
        - Src:             'randgen.c:77,4'
          Dst:             i_fatal
        - Src:             'randgen.c:80,4'
          Dst:             i_fatal
        - Src:             'randgen.c:83,2'
          Dst:             fd_close_on_exec
    - functionName:    random_deinit
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     externalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_close_fd_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'randgen.c:222,2'
          Dst:             i_close_fd_path
    - functionName:    kiss_init
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_init
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - kiss_init
        - srand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'randgen.c:178,2'
          Dst:             kiss_init
        - Src:             'randgen.c:179,2'
          Dst:             srand
    - 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:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    random_read
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          149
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - getrandom
        - i_fatal
        - i_panic
        - random_open_urandom
        - read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'randgen.c:91,9'
          Dst:             getrandom
        - Src:             'randgen.c:92,18'
          Dst:             __errno_location
        - Src:             'randgen.c:98,4'
          Dst:             random_open_urandom
        - Src:             'randgen.c:106,9'
          Dst:             read
        - Src:             'randgen.c:109,4'
          Dst:             i_fatal
        - Src:             'randgen.c:110,14'
          Dst:             __errno_location
        - Src:             'randgen.c:112,5'
          Dst:             i_fatal
        - Src:             'randgen.c:114,5'
          Dst:             i_fatal
        - Src:             'randgen.c:118,2'
          Dst:             __errno_location
        - Src:             'randgen.c:118,2'
          Dst:             i_panic
    - functionName:    getrandom
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kiss_rand
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          45
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_fill
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          219
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - i_memcpy
        - i_panic
        - kiss_rand
        - random_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'randgen.c:125,2'
          Dst:             i_panic
        - Src:             'randgen.c:126,2'
          Dst:             i_panic
        - Src:             'randgen.c:131,49'
          Dst:             kiss_rand
        - Src:             'randgen.c:146,10'
          Dst:             random_read
        - Src:             'randgen.c:156,11'
          Dst:             random_read
        - Src:             'randgen.c:162,5'
          Dst:             i_memcpy
    - functionName:    rand_get_last_seed
      functionSourceFile: '/src/dovecot/src/lib/randgen.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_rand_limit
      functionSourceFile: '/src/dovecot/src/lib/rand.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - i_rand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rand.c:94,2'
          Dst:             i_panic
        - Src:             'rand.c:98,15'
          Dst:             i_rand
    - functionName:    i_rand
      functionSourceFile: '/src/dovecot/src/lib/rand.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_fill
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rand.c:26,2'
          Dst:             random_fill
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    get_group_id
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - i_fatal
        - i_getgrnam
        - str_to_gid
      functionUses:    1
      BranchProfiles:
        - Branch String:   'restrict-access.c:163,2'
          Branch Sides:    []
      Callsites:
        - Src:             'restrict-access.c:160,6'
          Dst:             str_to_gid
        - Src:             'restrict-access.c:163,10'
          Dst:             i_getgrnam
        - Src:             'restrict-access.c:165,3'
          Dst:             i_fatal
        - Src:             'restrict-access.c:167,3'
          Dst:             i_fatal
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    drop_restricted_groups
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_uid_str
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dec2str
        - i_getpwuid
        - t_strdup_printf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:37,18'
          Dst:             __errno_location
        - Src:             'restrict-access.c:39,6'
          Dst:             i_getpwuid
        - Src:             'restrict-access.c:40,9'
          Dst:             dec2str
        - Src:             'restrict-access.c:42,35'
          Dst:             dec2str
        - Src:             'restrict-access.c:42,9'
          Dst:             t_strdup_printf
        - Src:             'restrict-access.c:43,2'
          Dst:             __errno_location
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_deinit
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          20
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:530,2'
          Dst:             p_free_internal
    - functionName:    restrict_access_have_priv_gid
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_drop_priv_gid
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_fatal
        - setegid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:518,6'
          Dst:             setegid
        - Src:             'restrict-access.c:519,3'
          Dst:             i_fatal
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_use_priv_gid
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - i_error
        - i_panic
        - setegid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:501,2'
          Dst:             i_panic
        - Src:             'restrict-access.c:505,6'
          Dst:             setegid
        - Src:             'restrict-access.c:506,3'
          Dst:             i_error
    - functionName:    restrict_access_allow_coredumps
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getenv
        - restrict_access_set_dumpable
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:494,6'
          Dst:             getenv
        - Src:             'restrict-access.c:495,3'
          Dst:             restrict_access_set_dumpable
    - functionName:    restrict_access_set_dumpable
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - prctl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:476,6'
          Dst:             prctl
        - Src:             'restrict-access.c:477,3'
          Dst:             i_error
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_get_dumpable
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_error
        - prctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:485,6'
          Dst:             prctl
        - Src:             'restrict-access.c:486,3'
          Dst:             i_error
    - functionName:    restrict_access_get_current_chroot
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_by_env
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - env_remove
        - getuid
        - restrict_access
        - restrict_access_get_env
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:442,2'
          Dst:             restrict_access_get_env
        - Src:             'restrict-access.c:443,2'
          Dst:             restrict_access
        - Src:             'restrict-access.c:446,2'
          Dst:             env_remove
        - Src:             'restrict-access.c:451,3'
          Dst:             env_remove
        - Src:             'restrict-access.c:452,3'
          Dst:             env_remove
        - Src:             'restrict-access.c:454,2'
          Dst:             env_remove
        - Src:             'restrict-access.c:455,2'
          Dst:             env_remove
        - Src:             'restrict-access.c:456,6'
          Dst:             getuid
        - Src:             'restrict-access.c:457,3'
          Dst:             env_remove
        - Src:             'restrict-access.c:464,2'
          Dst:             env_remove
        - Src:             'restrict-access.c:465,2'
          Dst:             env_remove
    - functionName:    restrict_access_get_env
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - getenv
        - i_fatal
        - null_if_empty
        - restrict_access_init
        - str_to_gid
        - str_to_uid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:411,2'
          Dst:             restrict_access_init
        - Src:             'restrict-access.c:412,15'
          Dst:             getenv
        - Src:             'restrict-access.c:413,7'
          Dst:             str_to_uid
        - Src:             'restrict-access.c:414,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:416,15'
          Dst:             getenv
        - Src:             'restrict-access.c:417,7'
          Dst:             str_to_gid
        - Src:             'restrict-access.c:418,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:420,15'
          Dst:             getenv
        - Src:             'restrict-access.c:421,7'
          Dst:             str_to_gid
        - Src:             'restrict-access.c:422,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:424,15'
          Dst:             getenv
        - Src:             'restrict-access.c:425,7'
          Dst:             str_to_gid
        - Src:             'restrict-access.c:426,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:428,15'
          Dst:             getenv
        - Src:             'restrict-access.c:429,7'
          Dst:             str_to_gid
        - Src:             'restrict-access.c:430,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:433,38'
          Dst:             getenv
        - Src:             'restrict-access.c:433,24'
          Dst:             null_if_empty
        - Src:             'restrict-access.c:434,44'
          Dst:             getenv
        - Src:             'restrict-access.c:434,30'
          Dst:             null_if_empty
        - Src:             'restrict-access.c:435,36'
          Dst:             getenv
        - Src:             'restrict-access.c:435,22'
          Dst:             null_if_empty
    - functionName:    restrict_access
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         115
      ICount:          538
      EdgeCount:       145
      CyclomaticComplexity: 32
      functionsReached:
        - chdir
        - chroot
        - fix_groups_list
        - get_gid_str
        - get_setuid_error_str
        - getegid
        - geteuid
        - getgid
        - getuid
        - i_error
        - i_fatal
        - i_panic
        - i_strdup
        - initgroups
        - localtime
        - restrict_init_groups
        - seteuid
        - setgid
        - setuid
        - t_pop
        - t_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:266,12'
          Dst:             geteuid
        - Src:             'restrict-access.c:270,6'
          Dst:             getuid
        - Src:             'restrict-access.c:273,17'
          Dst:             geteuid
        - Src:             'restrict-access.c:275,4'
          Dst:             i_panic
        - Src:             'restrict-access.c:277,7'
          Dst:             seteuid
        - Src:             'restrict-access.c:278,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:294,26'
          Dst:             getegid
        - Src:             'restrict-access.c:295,3'
          Dst:             restrict_init_groups
        - Src:             'restrict-access.c:299,26'
          Dst:             getegid
        - Src:             'restrict-access.c:304,7'
          Dst:             initgroups
        - Src:             'restrict-access.c:308,5'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:306,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:315,15'
          Dst:             t_push
        - Src:             'restrict-access.c:316,3'
          Dst:             fix_groups_list
        - Src:             'restrict-access.c:318,4'
          Dst:             t_pop
        - Src:             'restrict-access.c:318,4'
          Dst:             i_panic
        - Src:             'restrict-access.c:325,9'
          Dst:             localtime
        - Src:             'restrict-access.c:327,7'
          Dst:             chroot
        - Src:             'restrict-access.c:328,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:330,7'
          Dst:             chdir
        - Src:             'restrict-access.c:331,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:333,16'
          Dst:             i_strdup
        - Src:             'restrict-access.c:336,8'
          Dst:             chdir
        - Src:             'restrict-access.c:337,5'
          Dst:             i_error
        - Src:             'restrict-access.c:344,7'
          Dst:             setuid
        - Src:             'restrict-access.c:345,18'
          Dst:             get_setuid_error_str
        - Src:             'restrict-access.c:345,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:350,7'
          Dst:             setuid
        - Src:             'restrict-access.c:353,5'
          Dst:             i_fatal
        - Src:             'restrict-access.c:355,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:368,7'
          Dst:             getgid
        - Src:             'restrict-access.c:368,24'
          Dst:             getegid
        - Src:             'restrict-access.c:368,42'
          Dst:             setgid
        - Src:             'restrict-access.c:370,5'
          Dst:             i_fatal
        - Src:             'restrict-access.c:373,5'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:374,17'
          Dst:             getgid
        - Src:             'restrict-access.c:374,5'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:374,40'
          Dst:             getegid
        - Src:             'restrict-access.c:374,28'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:371,4'
          Dst:             i_fatal
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_init_groups
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          143
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - get_gid_str
        - get_uid_str
        - getegid
        - geteuid
        - getgid
        - i_fatal
        - setgid
        - setresgid
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:67,22'
          Dst:             getgid
        - Src:             'restrict-access.c:67,49'
          Dst:             getegid
        - Src:             'restrict-access.c:72,7'
          Dst:             setgid
        - Src:             'restrict-access.c:75,9'
          Dst:             t_str_new
        - Src:             'restrict-access.c:76,33'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:76,3'
          Dst:             str_printfa
        - Src:             'restrict-access.c:78,4'
          Dst:             str_printfa
        - Src:             'restrict-access.c:82,20'
          Dst:             geteuid
        - Src:             'restrict-access.c:82,8'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:83,20'
          Dst:             getgid
        - Src:             'restrict-access.c:83,8'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:83,43'
          Dst:             getegid
        - Src:             'restrict-access.c:83,31'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:84,8'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:84,46'
          Dst:             getegid
        - Src:             'restrict-access.c:84,34'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:79,3'
          Dst:             str_printfa
        - Src:             'restrict-access.c:85,17'
          Dst:             str_c
        - Src:             'restrict-access.c:85,3'
          Dst:             i_fatal
        - Src:             'restrict-access.c:88,6'
          Dst:             getegid
        - Src:             'restrict-access.c:88,39'
          Dst:             getgid
        - Src:             'restrict-access.c:89,21'
          Dst:             getegid
        - Src:             'restrict-access.c:96,6'
          Dst:             setresgid
        - Src:             'restrict-access.c:98,4'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:98,30'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:99,4'
          Dst:             get_gid_str
        - Src:             'restrict-access.c:99,45'
          Dst:             geteuid
        - Src:             'restrict-access.c:99,33'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:97,3'
          Dst:             i_fatal
    - 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:    get_gid_str
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dec2str
        - i_getgrgid
        - t_strdup_printf
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:51,18'
          Dst:             __errno_location
        - Src:             'restrict-access.c:53,6'
          Dst:             i_getgrgid
        - Src:             'restrict-access.c:54,9'
          Dst:             dec2str
        - Src:             'restrict-access.c:56,35'
          Dst:             dec2str
        - Src:             'restrict-access.c:56,9'
          Dst:             t_strdup_printf
        - Src:             'restrict-access.c:57,2'
          Dst:             __errno_location
    - functionName:    fix_groups_list
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          256
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - drop_restricted_groups
        - get_group_id
        - i_fatal
        - i_memcpy
        - malloc_multiply_check
        - restrict_get_groups_list
        - setgroups
        - str_array_length
        - t_malloc0
        - t_strsplit_spaces
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:187,3'
          Dst:             t_strsplit_spaces
        - Src:             'restrict-access.c:190,14'
          Dst:             restrict_get_groups_list
        - Src:             'restrict-access.c:191,3'
          Dst:             drop_restricted_groups
        - Src:             'restrict-access.c:207,14'
          Dst:             malloc_multiply_check
        - Src:             'restrict-access.c:207,14'
          Dst:             t_malloc0
        - Src:             'restrict-access.c:215,15'
          Dst:             str_array_length
        - Src:             'restrict-access.c:215,15'
          Dst:             malloc_multiply_check
        - Src:             'restrict-access.c:215,15'
          Dst:             t_malloc0
        - Src:             'restrict-access.c:216,3'
          Dst:             i_memcpy
        - Src:             'restrict-access.c:218,10'
          Dst:             get_group_id
        - Src:             'restrict-access.c:227,6'
          Dst:             setgroups
        - Src:             'restrict-access.c:228,7'
          Dst:             __errno_location
        - Src:             'restrict-access.c:229,4'
          Dst:             i_fatal
        - Src:             'restrict-access.c:233,4'
          Dst:             i_fatal
    - 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:    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:    2
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_setuid_error_str
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - get_uid_str
        - geteuid
        - str_append
        - str_c
        - str_printfa
        - t_str_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:241,18'
          Dst:             t_str_new
        - Src:             'restrict-access.c:243,32'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:243,2'
          Dst:             str_printfa
        - Src:             'restrict-access.c:245,3'
          Dst:             str_printfa
        - Src:             'restrict-access.c:247,19'
          Dst:             geteuid
        - Src:             'restrict-access.c:247,7'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:246,2'
          Dst:             str_printfa
        - Src:             'restrict-access.c:248,6'
          Dst:             __errno_location
        - Src:             'restrict-access.c:249,3'
          Dst:             str_append
        - Src:             'restrict-access.c:253,8'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:253,45'
          Dst:             geteuid
        - Src:             'restrict-access.c:253,33'
          Dst:             get_uid_str
        - Src:             'restrict-access.c:251,3'
          Dst:             str_printfa
        - Src:             'restrict-access.c:255,9'
          Dst:             str_c
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_get_groups_list
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - getgroups
        - i_fatal
        - malloc_multiply_check
        - t_malloc0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:124,19'
          Dst:             getgroups
        - Src:             'restrict-access.c:125,3'
          Dst:             i_fatal
        - Src:             'restrict-access.c:128,13'
          Dst:             malloc_multiply_check
        - Src:             'restrict-access.c:128,13'
          Dst:             t_malloc0
        - Src:             'restrict-access.c:129,13'
          Dst:             getgroups
        - Src:             'restrict-access.c:130,3'
          Dst:             i_fatal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - 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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setresgid
      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:    restrict_access_init
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    null_if_empty
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          30
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restrict_access_set_env
      functionSourceFile: '/src/dovecot/src/lib/restrict-access.c'
      linkageType:     externalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          200
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - dec2str
        - env_put
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'restrict-access.c:383,3'
          Dst:             env_put
        - Src:             'restrict-access.c:385,3'
          Dst:             env_put
        - Src:             'restrict-access.c:388,30'
          Dst:             dec2str
        - Src:             'restrict-access.c:388,3'
          Dst:             env_put
        - Src:             'restrict-access.c:390,30'
          Dst:             dec2str
        - Src:             'restrict-access.c:390,3'
          Dst:             env_put
        - Src:             'restrict-access.c:392,35'
          Dst:             dec2str
        - Src:             'restrict-access.c:392,3'
          Dst:             env_put
        - Src:             'restrict-access.c:394,3'
          Dst:             env_put
        - Src:             'restrict-access.c:397,33'
          Dst:             dec2str
        - Src:             'restrict-access.c:397,3'
          Dst:             env_put
        - Src:             'restrict-access.c:399,32'
          Dst:             dec2str
        - Src:             'restrict-access.c:399,3'
          Dst:             env_put
    - functionName:    safe_memset
      functionSourceFile: '/src/dovecot/src/lib/safe-memset.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    safe_sendfile
      functionSourceFile: '/src/dovecot/src/lib/sendfile-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_panic
        - sendfile
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sendfile-util.c:25,2'
          Dst:             i_panic
        - Src:             'sendfile-util.c:42,4'
          Dst:             __errno_location
        - Src:             'sendfile-util.c:50,8'
          Dst:             sendfile
    - 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:    hash_method_result_sha1
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha1_result_libmysqlclient_craps_all_over
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:276,2'
          Dst:             sha1_result_libmysqlclient_craps_all_over
    - functionName:    sha1_result_libmysqlclient_craps_all_over
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          162
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - safe_memset
        - sha1_pad
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:237,2'
          Dst:             sha1_pad
        - Src:             'sha1.c:252,2'
          Dst:             safe_memset
    - functionName:    sha1_pad
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     externalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          485
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sha1_step
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:177,2'
          Dst:             sha1_step
        - Src:             'sha1.c:185,3'
          Dst:             sha1_step
        - Src:             'sha1.c:198,2'
          Dst:             sha1_step
        - Src:             'sha1.c:198,25'
          Dst:             sha1_step
        - Src:             'sha1.c:199,2'
          Dst:             sha1_step
        - Src:             'sha1.c:199,25'
          Dst:             sha1_step
        - Src:             'sha1.c:200,2'
          Dst:             sha1_step
        - Src:             'sha1.c:200,25'
          Dst:             sha1_step
        - Src:             'sha1.c:201,2'
          Dst:             sha1_step
        - Src:             'sha1.c:201,25'
          Dst:             sha1_step
    - functionName:    sha1_step
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          1060
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_sha1
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha1_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:271,2'
          Dst:             sha1_loop
    - functionName:    sha1_loop
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          120
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sha1_step
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:226,4'
          Dst:             sha1_step
    - functionName:    hash_method_init_sha1
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha1_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:267,2'
          Dst:             sha1_init
    - functionName:    sha1_init
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha1_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha1.c'
      linkageType:     externalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha1_init
        - sha1_loop
        - sha1_result_libmysqlclient_craps_all_over
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sha1.c:260,2'
          Dst:             sha1_init
        - Src:             'sha1.c:261,2'
          Dst:             sha1_loop
        - Src:             'sha1.c:262,2'
          Dst:             sha1_result_libmysqlclient_craps_all_over
    - functionName:    hash_method_result_sha512
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha512_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:645,2'
          Dst:             sha512_result
    - functionName:    sha512_result
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          299
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sha512_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:567,2'
          Dst:             sha512_transf
    - functionName:    sha512_transf
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          428
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_sha512
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha512_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:640,2'
          Dst:             sha512_loop
    - functionName:    sha512_loop
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          129
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - sha512_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:527,2'
          Dst:             i_memcpy
        - Src:             'sha2.c:539,2'
          Dst:             sha512_transf
        - Src:             'sha2.c:540,2'
          Dst:             sha512_transf
        - Src:             'sha2.c:543,2'
          Dst:             i_memcpy
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    hash_method_init_sha512
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha512_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:636,2'
          Dst:             sha512_init
    - functionName:    sha512_init
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_result_sha384
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha384_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:620,2'
          Dst:             sha384_result
    - functionName:    sha384_result
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          299
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sha384_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:437,2'
          Dst:             sha384_transf
    - functionName:    sha384_transf
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          428
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_sha384
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha384_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:615,2'
          Dst:             sha384_loop
    - functionName:    sha384_loop
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          129
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - sha384_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:397,2'
          Dst:             i_memcpy
        - Src:             'sha2.c:409,2'
          Dst:             sha384_transf
        - Src:             'sha2.c:410,2'
          Dst:             sha384_transf
        - Src:             'sha2.c:413,2'
          Dst:             i_memcpy
    - functionName:    hash_method_init_sha384
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha384_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:611,2'
          Dst:             sha384_init
    - functionName:    sha384_init
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_result_sha256
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha256_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:595,2'
          Dst:             sha256_result
    - functionName:    sha256_result
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          230
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sha256_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:307,2'
          Dst:             sha256_transf
    - functionName:    sha256_transf
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          388
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_loop_sha256
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha256_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:590,2'
          Dst:             sha256_loop
    - functionName:    sha256_loop
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          129
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - i_memcpy
        - sha256_transf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:267,2'
          Dst:             i_memcpy
        - Src:             'sha2.c:279,2'
          Dst:             sha256_transf
        - Src:             'sha2.c:280,2'
          Dst:             sha256_transf
        - Src:             'sha2.c:283,2'
          Dst:             i_memcpy
    - functionName:    hash_method_init_sha256
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha256_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:586,2'
          Dst:             sha256_init
    - functionName:    sha256_init
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha512_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha512_init
        - sha512_loop
        - sha512_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:579,2'
          Dst:             sha512_init
        - Src:             'sha2.c:580,2'
          Dst:             sha512_loop
        - Src:             'sha2.c:581,2'
          Dst:             sha512_result
    - functionName:    sha384_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha384_init
        - sha384_loop
        - sha384_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:449,2'
          Dst:             sha384_init
        - Src:             'sha2.c:450,2'
          Dst:             sha384_loop
        - Src:             'sha2.c:451,2'
          Dst:             sha384_result
    - functionName:    sha256_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha2.c'
      linkageType:     externalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha256_init
        - sha256_loop
        - sha256_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha2.c:319,2'
          Dst:             sha256_init
        - Src:             'sha2.c:320,2'
          Dst:             sha256_loop
        - Src:             'sha2.c:321,2'
          Dst:             sha256_result
    - functionName:    hash_method_result_sha3_512
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_512_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:323,2'
          Dst:             sha3_512_result
    - functionName:    sha3_512_result
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - sha3_finalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:267,2'
          Dst:             sha3_finalize
        - Src:             'sha3.c:268,2'
          Dst:             i_memcpy
    - functionName:    sha3_finalize
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - keccakf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:233,2'
          Dst:             keccakf
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    keccakf
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          279
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_init_sha3_512
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_512_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:318,2'
          Dst:             sha3_512_init
    - functionName:    sha3_512_init
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_method_result_sha3_256
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_256_result
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:302,2'
          Dst:             sha3_256_result
    - functionName:    sha3_256_result
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_memcpy
        - sha3_finalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:258,2'
          Dst:             sha3_finalize
        - Src:             'sha3.c:259,2'
          Dst:             i_memcpy
    - functionName:    hash_method_loop_sha3
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:297,2'
          Dst:             sha3_loop
    - functionName:    sha3_loop
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          475
      EdgeCount:       71
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
        - keccakf
        - memcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:141,2'
          Dst:             i_panic
        - Src:             'sha3.c:142,2'
          Dst:             i_panic
        - Src:             'sha3.c:152,3'
          Dst:             i_panic
        - Src:             'sha3.c:167,3'
          Dst:             i_panic
        - Src:             'sha3.c:173,4'
          Dst:             keccakf
        - Src:             'sha3.c:180,2'
          Dst:             i_panic
        - Src:             'sha3.c:195,3'
          Dst:             memcmp
        - Src:             'sha3.c:195,3'
          Dst:             i_panic
        - Src:             'sha3.c:200,4'
          Dst:             keccakf
        - Src:             'sha3.c:206,2'
          Dst:             i_panic
        - Src:             'sha3.c:211,2'
          Dst:             i_panic
    - functionName:    hash_method_init_sha3_256
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_256_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:292,2'
          Dst:             sha3_256_init
    - functionName:    sha3_256_init
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha3_512_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_512_init
        - sha3_512_result
        - sha3_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:285,2'
          Dst:             sha3_512_init
        - Src:             'sha3.c:286,2'
          Dst:             sha3_loop
        - Src:             'sha3.c:287,2'
          Dst:             sha3_512_result
    - functionName:    sha3_256_get_digest
      functionSourceFile: '/src/dovecot/src/lib/sha3.c'
      linkageType:     externalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sha3_256_init
        - sha3_256_result
        - sha3_loop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sha3.c:276,2'
          Dst:             sha3_256_init
        - Src:             'sha3.c:277,2'
          Dst:             sha3_loop
        - Src:             'sha3.c:278,2'
          Dst:             sha3_256_result
    - functionName:    i_sleep_intr_secs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:73,9'
          Dst:             sleep_timespec
    - functionName:    sleep_timespec
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 20
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - i_fatal
        - nanosleep
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:13,9'
          Dst:             nanosleep
        - Src:             'sleep.c:14,7'
          Dst:             __errno_location
        - Src:             'sleep.c:15,4'
          Dst:             i_fatal
    - functionName:    nanosleep
      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:    i_sleep_intr_msecs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:64,9'
          Dst:             sleep_timespec
    - functionName:    i_sleep_intr_usecs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:55,9'
          Dst:             sleep_timespec
    - functionName:    i_sleep_secs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:46,2'
          Dst:             sleep_timespec
    - functionName:    i_sleep_msecs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:37,2'
          Dst:             sleep_timespec
    - functionName:    i_sleep_usecs
      functionSourceFile: '/src/dovecot/src/lib/sleep.c'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sleep_timespec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sleep.c:28,2'
          Dst:             sleep_timespec
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate_utf8
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_data
        - str_len
        - str_truncate
        - uni_utf8_data_truncate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:140,16'
          Dst:             str_len
        - Src:             'str.c:144,43'
          Dst:             str_data
        - Src:             'str.c:144,20'
          Dst:             uni_utf8_data_truncate
        - Src:             'str.c:144,2'
          Dst:             str_truncate
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_vprintfa
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          151
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - buffer_get_space_unsafe
        - buffer_get_writable_size
        - buffer_set_used_size
        - i_panic
        - printf_format_fix_get_len
        - vsnprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:111,8'
          Dst:             printf_format_fix_get_len
        - Src:             'str.c:115,22'
          Dst:             buffer_get_writable_size
        - Src:             'str.c:116,12'
          Dst:             buffer_get_writable_size
        - Src:             'str.c:119,15'
          Dst:             buffer_get_writable_size
        - Src:             'str.c:121,8'
          Dst:             buffer_get_space_unsafe
        - Src:             'str.c:122,8'
          Dst:             vsnprintf
        - Src:             'str.c:123,2'
          Dst:             i_panic
        - Src:             'str.c:128,9'
          Dst:             buffer_get_space_unsafe
        - Src:             'str.c:129,10'
          Dst:             vsnprintf
        - Src:             'str.c:130,3'
          Dst:             i_panic
        - Src:             'str.c:135,2'
          Dst:             buffer_set_used_size
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_printfa
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_vprintfa
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:93,2'
          Dst:             str_vprintfa
    - functionName:    str_append_max
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_append
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:80,6'
          Dst:             memchr
        - Src:             'str.c:85,2'
          Dst:             buffer_append
    - functionName:    str_equals
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:72,9'
          Dst:             memcmp
    - functionName:    str_c_modifiable
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_get_modifiable_data
        - buffer_nul_terminate
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:63,2'
          Dst:             buffer_nul_terminate
        - Src:             'str.c:64,9'
          Dst:             buffer_get_modifiable_data
    - functionName:    str_c
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_nul_terminate
      functionUses:    77
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:57,2'
          Dst:             buffer_nul_terminate
    - functionName:    str_free_without_data
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free_without_data
        - buffer_nul_terminate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:51,2'
          Dst:             buffer_nul_terminate
        - Src:             'str.c:52,9'
          Dst:             buffer_free_without_data
    - functionName:    str_free
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:46,2'
          Dst:             buffer_free
    - functionName:    t_str_new_const
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_datastack_create
        - str_new_const
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:38,23'
          Dst:             pool_datastack_create
        - Src:             'str.c:38,9'
          Dst:             str_new_const
    - functionName:    str_new_const
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 20
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_from_const_data
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - str_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:23,2'
          Dst:             i_panic
        - Src:             'str.c:25,8'
          Dst:             malloc_multiply_check
        - Src:             'str.c:25,8'
          Dst:             p_malloc
        - Src:             'str.c:26,2'
          Dst:             buffer_create_from_const_data
        - Src:             'str.c:27,2'
          Dst:             str_truncate
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    t_str_new
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_datastack_create
        - str_new
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:33,17'
          Dst:             pool_datastack_create
        - Src:             'str.c:33,9'
          Dst:             str_new
    - functionName:    str_new
      functionSourceFile: '/src/dovecot/src/lib/str.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:16,9'
          Dst:             buffer_create_dynamic
    - functionName:    str_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_sanitize_skip_start_utf8
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - uni_utf8_get_char
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:35,13'
          Dst:             uni_utf8_get_char
        - Src:             'str-sanitize.c:38,7'
          Dst:             __ctype_b_loc
        - Src:             'str-sanitize.c:43,2'
          Dst:             i_panic
    - functionName:    str_sanitize_utf8
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     externalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - str_sanitize_append_utf8
        - str_sanitize_skip_start_utf8
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:158,6'
          Dst:             str_sanitize_skip_start_utf8
        - Src:             'str-sanitize.c:162,8'
          Dst:             t_str_new
        - Src:             'str-sanitize.c:163,2'
          Dst:             str_sanitize_append_utf8
        - Src:             'str-sanitize.c:164,9'
          Dst:             str_c
    - functionName:    str_sanitize_append_utf8
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     externalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - str_append
        - str_append_data
        - str_len
        - str_truncate
        - uni_utf8_get_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:105,2'
          Dst:             i_panic
        - Src:             'str-sanitize.c:108,13'
          Dst:             uni_utf8_get_char
        - Src:             'str-sanitize.c:112,14'
          Dst:             str_len
        - Src:             'str-sanitize.c:115,4'
          Dst:             str_append
        - Src:             'str-sanitize.c:119,7'
          Dst:             __ctype_b_loc
        - Src:             'str-sanitize.c:120,4'
          Dst:             str_append
        - Src:             'str-sanitize.c:122,4'
          Dst:             str_append_data
        - Src:             'str-sanitize.c:128,3'
          Dst:             str_truncate
        - Src:             'str-sanitize.c:129,3'
          Dst:             str_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_sanitize_skip_start
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - i_panic
        - uni_utf8_get_char_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:15,13'
          Dst:             uni_utf8_get_char_n
        - Src:             'str-sanitize.c:18,7'
          Dst:             __ctype_b_loc
        - Src:             'str-sanitize.c:22,2'
          Dst:             i_panic
    - functionName:    str_sanitize
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_c
        - str_sanitize_append
        - str_sanitize_skip_start
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:141,6'
          Dst:             str_sanitize_skip_start
        - Src:             'str-sanitize.c:145,8'
          Dst:             t_str_new
        - Src:             'str-sanitize.c:146,2'
          Dst:             str_sanitize_append
        - Src:             'str-sanitize.c:147,9'
          Dst:             str_c
    - functionName:    str_sanitize_append
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          165
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __ctype_b_loc
        - str_append
        - str_append_c
        - str_append_data
        - str_len
        - str_sanitize_truncate_char
        - str_truncate
        - uni_utf8_get_char_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:64,23'
          Dst:             str_len
        - Src:             'str-sanitize.c:69,13'
          Dst:             uni_utf8_get_char_n
        - Src:             'str-sanitize.c:75,4'
          Dst:             str_append_c
        - Src:             'str-sanitize.c:79,7'
          Dst:             __ctype_b_loc
        - Src:             'str-sanitize.c:80,4'
          Dst:             str_append_c
        - Src:             'str-sanitize.c:82,4'
          Dst:             str_append_data
        - Src:             'str-sanitize.c:88,4'
          Dst:             str_truncate
        - Src:             'str-sanitize.c:90,11'
          Dst:             str_len
        - Src:             'str-sanitize.c:91,5'
          Dst:             str_sanitize_truncate_char
        - Src:             'str-sanitize.c:93,3'
          Dst:             str_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_sanitize_truncate_char
      functionSourceFile: '/src/dovecot/src/lib/str-sanitize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - str_data
        - str_len
        - str_truncate
        - uni_utf8_data_truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-sanitize.c:49,30'
          Dst:             str_data
        - Src:             'str-sanitize.c:50,15'
          Dst:             str_len
        - Src:             'str-sanitize.c:52,2'
          Dst:             i_panic
        - Src:             'str-sanitize.c:59,3'
          Dst:             uni_utf8_data_truncate
        - Src:             'str-sanitize.c:58,2'
          Dst:             str_truncate
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:130,3'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    t_strsplit_tabescaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_noconst
        - t_strsplit_tabescaped_inplace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:355,39'
          Dst:             t_strdup_noconst
        - Src:             'strescape.c:355,9'
          Dst:             t_strsplit_tabescaped_inplace
    - functionName:    t_strsplit_tabescaped_inplace
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strsplit_tabescaped_inplace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:344,3'
          Dst:             p_strsplit_tabescaped_inplace
    - functionName:    p_strsplit_tabescaped_inplace
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          211
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - nearest_power
        - p_malloc
        - p_realloc
        - str_tabunescape_from
        - strpbrk
        - t_malloc_no0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:303,10'
          Dst:             malloc_multiply_check
        - Src:             'strescape.c:303,10'
          Dst:             p_malloc
        - Src:             'strescape.c:307,16'
          Dst:             malloc_multiply_check
        - Src:             'strescape.c:307,3'
          Dst:             t_malloc_no0
        - Src:             'strescape.c:308,3'
          Dst:             malloc_multiply_check
        - Src:             'strescape.c:308,3'
          Dst:             p_malloc
        - Src:             'strescape.c:312,17'
          Dst:             strpbrk
        - Src:             'strescape.c:321,22'
          Dst:             nearest_power
        - Src:             'strescape.c:322,12'
          Dst:             malloc_multiply_check
        - Src:             'strescape.c:322,12'
          Dst:             malloc_multiply_check
        - Src:             'strescape.c:322,12'
          Dst:             p_realloc
        - Src:             'strescape.c:328,4'
          Dst:             str_tabunescape_from
        - Src:             'strescape.c:334,3'
          Dst:             str_tabunescape_from
        - Src:             'strescape.c:335,2'
          Dst:             i_panic
    - 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:    str_tabunescape_from
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          131
      EdgeCount:       16
      CyclomaticComplexity: 2
      functionsReached:
        - strchr
        - strlen
      functionUses:    4
      BranchProfiles:
        - Branch String:   'strescape.c:234,3'
          Branch Sides:    []
      Callsites:
        - Src:             'strescape.c:260,7'
          Dst:             strchr
        - Src:             'strescape.c:262,23'
          Dst:             strlen
    - functionName:    p_strsplit_tabescaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
        - p_strsplit_tabescaped_inplace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:350,45'
          Dst:             p_strdup
        - Src:             'strescape.c:350,9'
          Dst:             p_strsplit_tabescaped_inplace
    - functionName:    t_str_tabunescape
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_tabunescape_from
        - strchr
        - t_strdup_noconst
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:288,6'
          Dst:             strchr
        - Src:             'strescape.c:292,15'
          Dst:             t_strdup_noconst
        - Src:             'strescape.c:293,9'
          Dst:             str_tabunescape_from
    - functionName:    str_tabunescape
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_tabunescape_from
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:276,14'
          Dst:             strchr
        - Src:             'strescape.c:281,9'
          Dst:             str_tabunescape_from
    - functionName:    str_append_tabunescaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          148
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - str_append_c
        - str_append_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'strescape.c:200,5'
          Branch Sides:    []
      Callsites:
        - Src:             'strescape.c:195,3'
          Dst:             str_append_data
        - Src:             'strescape.c:202,6'
          Dst:             str_append_c
        - Src:             'strescape.c:205,6'
          Dst:             str_append_c
        - Src:             'strescape.c:208,6'
          Dst:             str_append_c
        - Src:             'strescape.c:211,6'
          Dst:             str_append_c
        - Src:             'strescape.c:214,6'
          Dst:             str_append_c
        - Src:             'strescape.c:217,6'
          Dst:             str_append_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_tabescape
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append_data
        - str_append_tabescaped
        - str_c
        - strpbrk
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:175,11'
          Dst:             strpbrk
        - Src:             'strescape.c:176,9'
          Dst:             t_str_new
        - Src:             'strescape.c:177,3'
          Dst:             str_append_data
        - Src:             'strescape.c:178,3'
          Dst:             str_append_tabescaped
        - Src:             'strescape.c:179,10'
          Dst:             str_c
    - functionName:    str_append_tabescaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached:
        - i_unreached
        - str_append_data
        - strcspn
      functionUses:    14
      BranchProfiles:
        - Branch String:   'strescape.c:146,3'
          Branch Sides:    []
      Callsites:
        - Src:             'strescape.c:142,20'
          Dst:             strcspn
        - Src:             'strescape.c:143,3'
          Dst:             str_append_data
        - Src:             'strescape.c:163,4'
          Dst:             i_unreached
        - Src:             'strescape.c:165,3'
          Dst:             str_append_data
    - functionName:    str_append_tabescaped_n
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - str_append_data
      functionUses:    0
      BranchProfiles:
        - Branch String:   'strescape.c:110,3'
          Branch Sides:    []
      Callsites:
        - Src:             'strescape.c:129,3'
          Dst:             str_append_data
        - Src:             'strescape.c:130,3'
          Dst:             str_append_data
        - Src:             'strescape.c:133,2'
          Dst:             str_append_data
    - functionName:    str_unescape_next
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          124
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - p_strdup_until
        - str_unescape
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:98,12'
          Dst:             p_strdup_until
        - Src:             'strescape.c:100,40'
          Dst:             str_unescape
    - functionName:    str_unescape
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_unescaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - str_append_c
        - str_append_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:44,3'
          Dst:             str_append_data
        - Src:             'strescape.c:49,4'
          Dst:             str_append_c
    - functionName:    str_append_escaped
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 15
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          140
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - str_append_c
        - str_append_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:24,2'
          Dst:             str_append_data
        - Src:             'strescape.c:28,4'
          Dst:             str_append_c
        - Src:             'strescape.c:29,3'
          Dst:             str_append_data
    - functionName:    str_nescape
      functionSourceFile: '/src/dovecot/src/lib/strescape.c'
      linkageType:     externalLinkage
      functionLinenumber: 8
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_append_escaped
        - str_c
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strescape.c:9,19'
          Dst:             t_str_new
        - Src:             'strescape.c:10,2'
          Dst:             str_append_escaped
        - Src:             'strescape.c:11,9'
          Dst:             str_c
    - functionName:    p_realloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:130,3'
          Dst:             i_panic
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    split_str_slow
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          254
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - nearest_power
        - p_malloc
        - p_realloc
        - p_strdup
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:764,27'
          Dst:             strchr
        - Src:             'strfuncs.c:768,10'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:768,10'
          Dst:             p_malloc
        - Src:             'strfuncs.c:770,8'
          Dst:             p_strdup
        - Src:             'strfuncs.c:773,10'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:773,10'
          Dst:             p_malloc
        - Src:             'strfuncs.c:777,7'
          Dst:             strchr
        - Src:             'strfuncs.c:780,23'
          Dst:             nearest_power
        - Src:             'strfuncs.c:781,13'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:781,13'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:781,13'
          Dst:             p_realloc
        - Src:             'strfuncs.c:789,12'
          Dst:             strchr
        - Src:             'strfuncs.c:803,2'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    p_strdup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_malloc
        - strlen
      functionUses:    40
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:60,8'
          Dst:             strlen
        - Src:             'strfuncs.c:61,8'
          Dst:             p_malloc
    - functionName:    split_str_fast
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          154
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - nearest_power
        - p_malloc
        - p_realloc
        - p_strdup
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:816,10'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:816,10'
          Dst:             p_malloc
        - Src:             'strfuncs.c:818,8'
          Dst:             p_strdup
        - Src:             'strfuncs.c:821,10'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:821,10'
          Dst:             p_malloc
        - Src:             'strfuncs.c:824,16'
          Dst:             strchr
        - Src:             'strfuncs.c:827,22'
          Dst:             nearest_power
        - Src:             'strfuncs.c:828,12'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:828,12'
          Dst:             malloc_multiply_check
        - Src:             'strfuncs.c:828,12'
          Dst:             p_realloc
        - Src:             'strfuncs.c:835,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:836,2'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_array_const_string_join
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1021
      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:
        - array_count_i
        - array_idx_i
        - array_is_created_i
        - p_strarray_join_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:1017,6'
          Dst:             array_is_created_i
        - Src:             'strfuncs.c:1019,33'
          Dst:             array_idx_i
        - Src:             'strfuncs.c:1019,51'
          Dst:             array_count_i
        - Src:             'strfuncs.c:1019,9'
          Dst:             p_strarray_join_n
    - functionName:    p_strarray_join_n
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          151
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - malloc_add_check
        - nearest_power
        - p_memdup
        - strlen
        - t_buffer_alloc
        - t_buffer_get
        - t_buffer_reget
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:902,12'
          Dst:             strlen
        - Src:             'strfuncs.c:904,8'
          Dst:             t_buffer_get
        - Src:             'strfuncs.c:908,9'
          Dst:             strlen
        - Src:             'strfuncs.c:909,18'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:909,18'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:909,18'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:911,16'
          Dst:             nearest_power
        - Src:             'strfuncs.c:912,10'
          Dst:             t_buffer_reget
        - Src:             'strfuncs.c:925,10'
          Dst:             p_memdup
        - Src:             'strfuncs.c:926,2'
          Dst:             t_buffer_alloc
    - functionName:    malloc_add_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:40,3'
          Dst:             i_panic
    - functionName:    p_memdup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:70,8'
          Dst:             p_malloc
    - functionName:    dec2str_buf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:1010,2'
          Dst:             i_panic
    - functionName:    dec2str
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dec2str_buf
        - t_malloc_no0
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:996,21'
          Dst:             t_malloc_no0
        - Src:             'strfuncs.c:996,9'
          Dst:             dec2str_buf
    - functionName:    p_strarray_dup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          129
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - malloc_add_check
        - p_malloc
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:978,10'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:978,10'
          Dst:             strlen
        - Src:             'strfuncs.c:978,10'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:982,8'
          Dst:             p_malloc
        - Src:             'strfuncs.c:985,9'
          Dst:             strlen
        - Src:             'strfuncs.c:990,2'
          Dst:             i_panic
    - functionName:    str_array_icase_find
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:964,7'
          Dst:             strcasecmp
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_array_find
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 959
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:955,7'
          Dst:             strcmp
    - functionName:    str_array_remove
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:941,7'
          Dst:             strcmp
    - functionName:    t_strarray_join
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strarray_join_n
        - str_array_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:933,6'
          Dst:             str_array_length
        - Src:             'strfuncs.c:932,9'
          Dst:             p_strarray_join_n
    - functionName:    str_array_length
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 892
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_strsplit_free
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:877,2'
          Dst:             p_free_internal
        - Src:             'strfuncs.c:878,2'
          Dst:             p_free_internal
    - functionName:    p_strsplit_spaces
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 872
      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:
        - split_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:872,9'
          Dst:             split_str
    - functionName:    split_str
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - split_str_fast
        - split_str_slow
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:844,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:847,10'
          Dst:             split_str_fast
        - Src:             'strfuncs.c:849,10'
          Dst:             split_str_slow
    - functionName:    p_strsplit
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 866
      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:
        - split_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:866,9'
          Dst:             split_str
    - functionName:    t_strsplit_spaces
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - split_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:860,24'
          Dst:             split_str
    - functionName:    t_strsplit
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - split_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:854,24'
          Dst:             split_str
    - functionName:    t_split_key_value
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:745,34'
          Dst:             strchr
        - Src:             'strfuncs.c:747,12'
          Dst:             t_strdup_until
    - functionName:    t_strdup_until
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_until_noconst
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:292,9'
          Dst:             t_strdup_until_noconst
    - functionName:    t_strdup_until_noconst
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_malloc_no0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:280,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:284,8'
          Dst:             t_malloc_no0
    - functionName:    i_memcspn
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          168
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - memchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:725,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:726,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:735,4'
          Dst:             memchr
    - functionName:    i_memspn
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          128
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - memchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:706,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:707,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:713,7'
          Dst:             memchr
    - functionName:    str_begins_icase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_match_icase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:695,22'
          Dst:             str_match_icase
    - functionName:    str_match_icase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - tolower
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:675,26'
          Dst:             tolower
        - Src:             'strfuncs.c:675,46'
          Dst:             tolower
    - functionName:    str_begins
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:684,22'
          Dst:             str_match
    - functionName:    str_match
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_equals_timing_almost_safe
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          82
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mem_equals_timing_safe
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          56
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_strcasecmp_p
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:627,9'
          Dst:             strcasecmp
    - functionName:    i_strcmp_p
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:622,9'
          Dst:             strcmp
    - functionName:    i_memrchr
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - memrchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:607,9'
          Dst:             memrchr
    - functionName:    memrchr
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_memcasecmp
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:594,9'
          Dst:             toupper
        - Src:             'strfuncs.c:594,26'
          Dst:             toupper
    - functionName:    null_strcasecmp
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:584,9'
          Dst:             strcasecmp
    - functionName:    null_strcmp
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:574,9'
          Dst:             strcmp
    - functionName:    p_str_rtrim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup_until
        - str_trim_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:561,2'
          Dst:             str_trim_parse
        - Src:             'strfuncs.c:564,9'
          Dst:             p_strdup_until
    - functionName:    str_trim_parse
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - strchr
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:479,15'
          Dst:             strlen
        - Src:             'strfuncs.c:485,22'
          Dst:             strchr
        - Src:             'strfuncs.c:494,23'
          Dst:             strchr
    - functionName:    p_strdup_until
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_malloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:88,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:92,8'
          Dst:             p_malloc
    - functionName:    t_str_rtrim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_trim_parse
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:551,2'
          Dst:             str_trim_parse
        - Src:             'strfuncs.c:554,9'
          Dst:             t_strdup_until
    - functionName:    p_str_ltrim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup
        - str_ltrim
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:544,24'
          Dst:             str_ltrim
        - Src:             'strfuncs.c:544,9'
          Dst:             p_strdup
    - functionName:    str_ltrim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_trim_parse
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:531,2'
          Dst:             str_trim_parse
    - functionName:    t_str_ltrim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_ltrim
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:539,18'
          Dst:             str_ltrim
        - Src:             'strfuncs.c:539,9'
          Dst:             t_strdup
    - functionName:    t_strdup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      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:
        - t_strdup_noconst
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:257,9'
          Dst:             t_strdup_noconst
    - functionName:    t_strdup_noconst
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - t_memdup_noconst
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:264,31'
          Dst:             strlen
        - Src:             'strfuncs.c:264,9'
          Dst:             t_memdup_noconst
    - functionName:    t_memdup_noconst
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_malloc_no0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:245,14'
          Dst:             t_malloc_no0
    - functionName:    p_str_trim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_strdup_until
        - str_trim_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:520,2'
          Dst:             str_trim_parse
        - Src:             'strfuncs.c:524,9'
          Dst:             p_strdup_until
    - functionName:    t_str_trim
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_trim_parse
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:509,2'
          Dst:             str_trim_parse
        - Src:             'strfuncs.c:513,9'
          Dst:             t_strdup_until
    - functionName:    i_strstr_arr
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:466,14'
          Dst:             strstr
    - functionName:    t_str_ucase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - str_ucase
        - t_strdup_noconst
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:457,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:459,19'
          Dst:             t_strdup_noconst
        - Src:             'strfuncs.c:459,9'
          Dst:             str_ucase
    - functionName:    str_ucase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - toupper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:435,8'
          Dst:             toupper
    - functionName:    t_str_lcase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - str_lcase
        - t_strdup_noconst
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:450,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:452,19'
          Dst:             t_strdup_noconst
        - Src:             'strfuncs.c:452,9'
          Dst:             str_lcase
    - functionName:    str_lcase
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - tolower
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:444,8'
          Dst:             tolower
    - functionName:    i_strocpy
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_truncate
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_set_used_size
        - str_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:90,6'
          Dst:             str_len
        - Src:             './str.h:91,3'
          Dst:             buffer_set_used_size
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    t_str_oneline
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          178
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - str_append_c
        - str_append_data
        - str_c
        - str_len
        - str_truncate
        - strlen
        - strpbrk
        - t_str_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'strfuncs.c:383,3'
          Branch Sides:    []
      Callsites:
        - Src:             'strfuncs.c:374,6'
          Dst:             strpbrk
        - Src:             'strfuncs.c:377,8'
          Dst:             strlen
        - Src:             'strfuncs.c:378,8'
          Dst:             t_str_new
        - Src:             'strfuncs.c:386,5'
          Dst:             str_append_data
        - Src:             'strfuncs.c:392,5'
          Dst:             str_append_data
        - Src:             'strfuncs.c:397,5'
          Dst:             str_append_c
        - Src:             'strfuncs.c:409,18'
          Dst:             str_len
        - Src:             'strfuncs.c:410,21'
          Dst:             str_len
        - Src:             'strfuncs.c:410,3'
          Dst:             str_truncate
        - Src:             'strfuncs.c:412,3'
          Dst:             str_append_data
        - Src:             'strfuncs.c:413,9'
          Dst:             str_c
    - functionName:    t_str_replace
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strchr
        - strlen
        - t_malloc_no0
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:352,6'
          Dst:             strchr
        - Src:             'strfuncs.c:355,8'
          Dst:             strlen
        - Src:             'strfuncs.c:356,8'
          Dst:             t_malloc_no0
    - functionName:    t_strcut
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:341,11'
          Dst:             t_strdup_until
    - functionName:    t_strconcat
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - t_buffer_alloc
        - vstrconcat
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:324,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:328,8'
          Dst:             vstrconcat
        - Src:             'strfuncs.c:329,2'
          Dst:             t_buffer_alloc
    - functionName:    vstrconcat
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - malloc_add_check
        - nearest_power
        - strlen
        - t_buffer_get
        - t_buffer_reget
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:191,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:195,9'
          Dst:             t_buffer_get
        - Src:             'strfuncs.c:199,9'
          Dst:             strlen
        - Src:             'strfuncs.c:203,28'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:203,28'
          Dst:             malloc_add_check
        - Src:             'strfuncs.c:203,14'
          Dst:             nearest_power
        - Src:             'strfuncs.c:204,11'
          Dst:             t_buffer_reget
        - Src:             'strfuncs.c:213,2'
          Dst:             i_panic
    - functionName:    t_strdup_vprintf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_vprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:315,9'
          Dst:             p_strdup_vprintf
    - functionName:    p_strdup_vprintf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_malloc
        - t_buffer_alloc
        - t_noalloc_strdup_vprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:174,8'
          Dst:             t_noalloc_strdup_vprintf
        - Src:             'strfuncs.c:176,3'
          Dst:             t_buffer_alloc
        - Src:             'strfuncs.c:179,9'
          Dst:             p_malloc
    - functionName:    t_noalloc_strdup_vprintf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - printf_format_fix_get_len
        - t_buffer_get
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:146,11'
          Dst:             printf_format_fix_get_len
        - Src:             'strfuncs.c:149,8'
          Dst:             t_buffer_get
        - Src:             'strfuncs.c:150,8'
          Dst:             vsnprintf
        - Src:             'strfuncs.c:151,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:157,9'
          Dst:             t_buffer_get
        - Src:             'strfuncs.c:158,9'
          Dst:             vsnprintf
        - Src:             'strfuncs.c:159,3'
          Dst:             i_panic
    - functionName:    t_strdup_printf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_vprintf
      functionUses:    165
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:307,8'
          Dst:             p_strdup_vprintf
    - functionName:    t_strndup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_strndup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:297,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:298,9'
          Dst:             p_strndup
    - functionName:    p_strndup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - memchr
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:103,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:104,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:106,6'
          Dst:             memchr
        - Src:             'strfuncs.c:112,8'
          Dst:             p_malloc
    - functionName:    t_strdup_empty
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - t_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:272,9'
          Dst:             t_strdup
    - functionName:    t_memdup
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_memdup_noconst
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:252,9'
          Dst:             t_memdup_noconst
    - functionName:    p_strconcat
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_malloc
        - t_buffer_alloc
        - vstrconcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:226,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:231,9'
          Dst:             vstrconcat
        - Src:             'strfuncs.c:232,3'
          Dst:             t_buffer_alloc
        - Src:             'strfuncs.c:234,10'
          Dst:             vstrconcat
        - Src:             'strfuncs.c:235,9'
          Dst:             p_malloc
    - functionName:    p_strdup_printf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - p_strdup_vprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:123,8'
          Dst:             p_strdup_vprintf
    - functionName:    p_strdup_empty
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:80,9'
          Dst:             p_strdup
    - functionName:    i_snprintf
      functionSourceFile: '/src/dovecot/src/lib/strfuncs.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - printf_format_fix_unsafe
        - vsnprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'strfuncs.c:41,2'
          Dst:             i_panic
        - Src:             'strfuncs.c:44,35'
          Dst:             printf_format_fix_unsafe
        - Src:             'strfuncs.c:44,8'
          Dst:             vsnprintf
        - Src:             'strfuncs.c:48,2'
          Dst:             i_panic
    - functionName:    str_num_error
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - str_is_numeric
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:488,8'
          Dst:             str_is_numeric
        - Src:             'strnum.c:492,8'
          Dst:             str_is_numeric
    - functionName:    str_is_numeric
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 18
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          91
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_double
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strtod
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:473,15'
          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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_float
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strtof
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:462,14'
          Dst:             strtof
    - 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:    str_parse_uoff
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:453,1'
          Dst:             str_parse_uintmax
    - functionName:    str_parse_uintmax
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_parse_data_uintmax
        - strlen
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:109,60'
          Dst:             strlen
        - Src:             'strnum.c:109,9'
          Dst:             str_parse_data_uintmax
    - functionName:    str_parse_data_uintmax
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          154
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_time
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_to_intmax
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:446,6'
          Dst:             str_to_intmax
    - functionName:    str_to_intmax
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_intmax
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:351,12'
          Dst:             str_parse_intmax
    - functionName:    str_parse_intmax
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - str_parse_uintmax
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:333,6'
          Dst:             str_parse_uintmax
    - functionName:    str_to_uoff
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:433,6'
          Dst:             str_to_uintmax
    - functionName:    str_to_uintmax
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:116,12'
          Dst:             str_parse_uintmax
    - functionName:    str_to_ino
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
        - verify_xid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:420,6'
          Dst:             str_to_uintmax
        - Src:             'strnum.c:423,6'
          Dst:             verify_xid
    - functionName:    verify_xid
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_pid
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
        - verify_xid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:407,6'
          Dst:             str_to_uintmax
        - Src:             'strnum.c:410,6'
          Dst:             verify_xid
    - functionName:    str_to_gid
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
        - verify_xid
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:391,6'
          Dst:             str_to_uintmax
        - Src:             'strnum.c:396,6'
          Dst:             verify_xid
    - functionName:    str_to_uid
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
        - verify_xid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:378,6'
          Dst:             str_to_uintmax
        - Src:             'strnum.c:381,6'
          Dst:             verify_xid
    - functionName:    str_to_int64
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:321,1'
          Dst:             str_to_intmax
    - functionName:    str_to_int32
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:320,1'
          Dst:             str_to_intmax
    - functionName:    str_to_llong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:319,1'
          Dst:             str_to_intmax
    - functionName:    str_to_long
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:318,1'
          Dst:             str_to_intmax
    - functionName:    str_to_int
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:317,1'
          Dst:             str_to_intmax
    - functionName:    str_parse_int64
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_parse_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:303,1'
          Dst:             str_parse_intmax
    - functionName:    str_parse_int32
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_parse_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:302,1'
          Dst:             str_parse_intmax
    - functionName:    str_parse_llong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_parse_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:301,1'
          Dst:             str_parse_intmax
    - functionName:    str_parse_long
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_parse_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:300,1'
          Dst:             str_parse_intmax
    - functionName:    str_parse_int
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_parse_intmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:299,1'
          Dst:             str_parse_intmax
    - functionName:    str_to_uint64_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:252,1'
          Dst:             str_to_uintmax_oct
    - functionName:    str_to_uintmax_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:276,12'
          Dst:             str_parse_uintmax_oct
    - functionName:    str_parse_uintmax_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_uint32_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:251,1'
          Dst:             str_to_uintmax_oct
    - functionName:    str_to_ullong_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:250,1'
          Dst:             str_to_uintmax_oct
    - functionName:    str_to_ulong_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:249,1'
          Dst:             str_to_uintmax_oct
    - functionName:    str_to_uint_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_oct
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:248,1'
          Dst:             str_to_uintmax_oct
    - functionName:    str_parse_uint64_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:236,1'
          Dst:             str_parse_uintmax_oct
    - functionName:    str_parse_uint32_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:235,1'
          Dst:             str_parse_uintmax_oct
    - functionName:    str_parse_ullong_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:234,1'
          Dst:             str_parse_uintmax_oct
    - functionName:    str_parse_ulong_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:233,1'
          Dst:             str_parse_uintmax_oct
    - functionName:    str_parse_uint_oct
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_oct
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:232,1'
          Dst:             str_parse_uintmax_oct
    - functionName:    _str_parse_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          132
      EdgeCount:       56
      CyclomaticComplexity: 29
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'strnum.c:171,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    str_to_uint64_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:166,1'
          Dst:             str_to_uintmax_hex
    - functionName:    str_to_uintmax_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:211,12'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_parse_uintmax_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - _str_parse_hex
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:193,6'
          Dst:             _str_parse_hex
        - Src:             'strnum.c:201,11'
          Dst:             _str_parse_hex
    - functionName:    str_to_uint32_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:165,1'
          Dst:             str_to_uintmax_hex
    - functionName:    str_to_ullong_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:164,1'
          Dst:             str_to_uintmax_hex
    - functionName:    str_to_ulong_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:163,1'
          Dst:             str_to_uintmax_hex
    - functionName:    str_to_uint_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax_hex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:162,1'
          Dst:             str_to_uintmax_hex
    - functionName:    str_parse_uint64_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:150,1'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_parse_uint32_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:149,1'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_parse_ullong_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:148,1'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_parse_ulong_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:147,1'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_parse_uint_hex
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax_hex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:146,1'
          Dst:             str_parse_uintmax_hex
    - functionName:    str_uint_equals
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:127,6'
          Dst:             str_to_uintmax
    - functionName:    str_to_uint64
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:80,1'
          Dst:             str_to_uintmax
    - functionName:    str_to_uint32
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:79,1'
          Dst:             str_to_uintmax
    - functionName:    str_to_ullong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:78,1'
          Dst:             str_to_uintmax
    - functionName:    str_to_ulong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:77,1'
          Dst:             str_to_uintmax
    - functionName:    str_to_uint
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_to_uintmax
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:76,1'
          Dst:             str_to_uintmax
    - functionName:    str_parse_uint64
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:64,1'
          Dst:             str_parse_uintmax
    - functionName:    str_parse_uint32
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:63,1'
          Dst:             str_parse_uintmax
    - functionName:    str_parse_ullong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:62,1'
          Dst:             str_parse_uintmax
    - functionName:    str_parse_ulong
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:61,1'
          Dst:             str_parse_uintmax
    - functionName:    str_parse_uint
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - str_parse_uintmax
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'strnum.c:60,1'
          Dst:             str_parse_uintmax
    - functionName:    str_is_float
      functionSourceFile: '/src/dovecot/src/lib/strnum.c'
      linkageType:     externalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          129
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time_sub_secs
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - time_max_safe_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:192,25'
          Dst:             time_max_safe_value
    - functionName:    time_max_safe_value
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time_add_secs
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - time_max_safe_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:175,25'
          Dst:             time_max_safe_value
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    str_to_timeval
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - i_memcpy
        - i_panic
        - str_to_time
        - str_to_uint
        - strchr
        - strlen
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:137,18'
          Dst:             strchr
        - Src:             'time-util.c:139,10'
          Dst:             str_to_time
        - Src:             'time-util.c:142,2'
          Dst:             t_push
        - Src:             'time-util.c:143,21'
          Dst:             t_strdup_until
        - Src:             'time-util.c:143,9'
          Dst:             str_to_time
        - Src:             'time-util.c:144,4'
          Dst:             t_pop
        - Src:             'time-util.c:144,4'
          Dst:             i_panic
        - Src:             'time-util.c:148,21'
          Dst:             strlen
        - Src:             'time-util.c:152,2'
          Dst:             i_memcpy
        - Src:             'time-util.c:155,6'
          Dst:             str_to_uint
    - functionName:    t_strfgmtime
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gmtime
        - strftime_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:130,28'
          Dst:             gmtime
        - Src:             'time-util.c:130,9'
          Dst:             strftime_real
    - functionName:    gmtime
      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:    strftime_real
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - strftime
        - strlen
        - t_buffer_alloc
        - t_buffer_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:105,19'
          Dst:             strlen
        - Src:             'time-util.c:106,14'
          Dst:             t_buffer_get
        - Src:             'time-util.c:109,16'
          Dst:             strftime
        - Src:             'time-util.c:111,3'
          Dst:             i_panic
        - Src:             'time-util.c:112,9'
          Dst:             t_buffer_get
        - Src:             'time-util.c:114,2'
          Dst:             t_buffer_alloc
    - functionName:    t_strflocaltime
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - localtime
        - strftime_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:125,28'
          Dst:             localtime
        - Src:             'time-util.c:125,9'
          Dst:             strftime_real
    - functionName:    t_strftime
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strftime_real
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:120,9'
          Dst:             strftime_real
    - functionName:    time_to_local_day_start
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - localtime
        - mktime
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:92,11'
          Dst:             localtime
        - Src:             'time-util.c:98,19'
          Dst:             mktime
        - Src:             'time-util.c:99,2'
          Dst:             i_panic
    - 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:    timeval_diff_usecs
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeval_cmp_margin
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          191
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:67,2'
          Dst:             i_panic
    - functionName:    timeval_cmp
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_nanoseconds
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - clock_gettime
        - i_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:20,6'
          Dst:             clock_gettime
        - Src:             'time-util.c:21,3'
          Dst:             i_fatal
    - functionName:    i_gettimeofday
      functionSourceFile: '/src/dovecot/src/lib/time-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - gettimeofday
        - i_fatal
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'time-util.c:12,6'
          Dst:             gettimeofday
        - Src:             'time-util.c:13,3'
          Dst:             i_fatal
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uni_gc_scan_shift
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          158
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
        - uni_utf8_get_char_n
        - unicode_gc_break_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:632,19'
          Dst:             uni_utf8_get_char_n
        - Src:             'unichar.c:635,3'
          Dst:             i_panic
        - Src:             'unichar.c:640,7'
          Dst:             unicode_gc_break_cp
        - Src:             'unichar.c:647,5'
          Dst:             i_panic
    - functionName:    uni_utf8_get_char_n
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_parse_char
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:114,9'
          Dst:             uni_utf8_parse_char
    - functionName:    uni_utf8_parse_char
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          255
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - uni_is_valid_ucs4
        - uni_utf8_char_bytes
      functionUses:    3
      BranchProfiles:
        - Branch String:   'unichar.c:52,2'
          Branch Sides:    []
      Callsites:
        - Src:             'unichar.c:41,2'
          Dst:             i_panic
        - Src:             'unichar.c:51,8'
          Dst:             uni_utf8_char_bytes
        - Src:             'unichar.c:70,3'
          Dst:             i_panic
        - Src:             'unichar.c:96,7'
          Dst:             uni_is_valid_ucs4
    - functionName:    uni_utf8_char_bytes
      functionSourceFile: '/src/dovecot/src/lib/./unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uni_is_valid_ucs4
      functionSourceFile: '/src/dovecot/src/lib/./unichar.h'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uni_gc_scanner_init
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_gc_break_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:614,2'
          Dst:             unicode_gc_break_init
    - functionName:    uni_utf8_data_truncate
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uni_utf8_data_is_valid
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_find_invalid_pos
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:586,9'
          Dst:             uni_utf8_find_invalid_pos
    - functionName:    uni_utf8_find_invalid_pos
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - is_valid_utf8_seq
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:533,10'
          Dst:             is_valid_utf8_seq
    - functionName:    is_valid_utf8_seq
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uni_utf8_get_char_n
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:519,12'
          Dst:             uni_utf8_get_char_n
    - functionName:    uni_utf8_str_is_valid
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - uni_utf8_find_invalid_pos
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:579,7'
          Dst:             strlen
        - Src:             'unichar.c:578,9'
          Dst:             uni_utf8_find_invalid_pos
    - functionName:    uni_utf8_get_valid_data
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - buffer_append
        - buffer_append_c
        - is_valid_utf8_seq
        - output_add_replacement_char
        - uni_utf8_find_invalid_pos
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:549,6'
          Dst:             uni_utf8_find_invalid_pos
        - Src:             'unichar.c:553,2'
          Dst:             buffer_append
        - Src:             'unichar.c:555,2'
          Dst:             output_add_replacement_char
        - Src:             'unichar.c:558,4'
          Dst:             buffer_append_c
        - Src:             'unichar.c:562,9'
          Dst:             is_valid_utf8_seq
        - Src:             'unichar.c:565,4'
          Dst:             output_add_replacement_char
        - Src:             'unichar.c:568,3'
          Dst:             buffer_append
    - functionName:    output_add_replacement_char
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_append
        - memcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:245,6'
          Dst:             memcmp
        - Src:             'unichar.c:251,2'
          Dst:             buffer_append
    - functionName:    uni_utf8_to_decomposed_titlecase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - output_add_replacement_char
        - uni_ucs4_to_utf8
        - uni_utf8_get_char_n
        - unicode_rfc5051_init
        - unicode_rfc5051_normalize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:492,2'
          Dst:             unicode_rfc5051_init
        - Src:             'unichar.c:495,15'
          Dst:             uni_utf8_get_char_n
        - Src:             'unichar.c:500,4'
          Dst:             output_add_replacement_char
        - Src:             'unichar.c:509,14'
          Dst:             unicode_rfc5051_normalize
        - Src:             'unichar.c:510,3'
          Dst:             uni_ucs4_to_utf8
    - functionName:    uni_ucs4_to_utf8
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - uni_ucs4_to_utf8_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:158,3'
          Dst:             uni_ucs4_to_utf8_c
    - functionName:    uni_ucs4_to_utf8_c
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          127
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - buffer_append_c
        - i_panic
        - uni_is_valid_ucs4
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:167,3'
          Dst:             buffer_append_c
        - Src:             'unichar.c:171,2'
          Dst:             uni_is_valid_ucs4
        - Src:             'unichar.c:171,2'
          Dst:             i_panic
        - Src:             'unichar.c:194,2'
          Dst:             buffer_append_c
        - Src:             'unichar.c:198,3'
          Dst:             buffer_append_c
    - functionName:    uni_utf8_to_casefold
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_casefold
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:476,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:476,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:479,8'
          Dst:             uni_utf8_write_casefold
        - Src:             'unichar.c:480,14'
          Dst:             str_c
    - functionName:    uni_utf8_write_casefold
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_run_transform
        - unicode_casemap_init_casefold
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:448,2'
          Dst:             unicode_casemap_init_casefold
        - Src:             'unichar.c:450,9'
          Dst:             uni_utf8_run_transform
    - functionName:    uni_utf8_run_transform
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          180
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - uni_utf8_get_char_n
        - unicode_buffer_sink_init
        - unicode_transform_chain
        - unicode_transform_flush
        - unicode_transform_get_last
        - unicode_transform_input
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:259,3'
          Dst:             unicode_transform_get_last
        - Src:             'unichar.c:267,2'
          Dst:             unicode_buffer_sink_init
        - Src:             'unichar.c:268,2'
          Dst:             unicode_transform_chain
        - Src:             'unichar.c:272,16'
          Dst:             uni_utf8_get_char_n
        - Src:             'unichar.c:288,10'
          Dst:             unicode_transform_input
        - Src:             'unichar.c:295,13'
          Dst:             unicode_transform_flush
        - Src:             'unichar.c:297,3'
          Dst:             i_panic
        - Src:             'unichar.c:298,2'
          Dst:             i_panic
    - functionName:    unicode_transform_get_last
      functionSourceFile: '/src/dovecot/src/lib/./unicode-transform.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_transform_chain
      functionSourceFile: '/src/dovecot/src/lib/./unicode-transform.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './unicode-transform.h:46,2'
          Dst:             i_panic
    - functionName:    unicode_transform_input
      functionSourceFile: '/src/dovecot/src/lib/./unicode-transform.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_input_buf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './unicode-transform.h:75,9'
          Dst:             unicode_transform_input_buf
    - functionName:    uni_utf8_to_lowercase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_lowercase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:466,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:466,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:469,8'
          Dst:             uni_utf8_write_lowercase
        - Src:             'unichar.c:470,14'
          Dst:             str_c
    - functionName:    uni_utf8_write_lowercase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_run_transform
        - unicode_casemap_init_lowercase
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:437,2'
          Dst:             unicode_casemap_init_lowercase
        - Src:             'unichar.c:439,9'
          Dst:             uni_utf8_run_transform
    - functionName:    uni_utf8_to_uppercase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_uppercase
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:456,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:456,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:459,8'
          Dst:             uni_utf8_write_uppercase
        - Src:             'unichar.c:460,14'
          Dst:             str_c
    - functionName:    uni_utf8_write_uppercase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_run_transform
        - unicode_casemap_init_uppercase
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:426,2'
          Dst:             unicode_casemap_init_uppercase
        - Src:             'unichar.c:428,9'
          Dst:             uni_utf8_run_transform
    - functionName:    uni_utf8_is_nfkc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_is_nf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:418,9'
          Dst:             uni_utf8_is_nf
    - functionName:    uni_utf8_is_nf
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - uni_utf8_get_char_n
        - unicode_nf_checker_finish
        - unicode_nf_checker_init
        - unicode_nf_checker_input
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:383,2'
          Dst:             unicode_nf_checker_init
        - Src:             'unichar.c:387,15'
          Dst:             uni_utf8_get_char_n
        - Src:             'unichar.c:393,9'
          Dst:             unicode_nf_checker_input
        - Src:             'unichar.c:398,9'
          Dst:             unicode_nf_checker_finish
    - functionName:    uni_utf8_is_nfc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_is_nf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:413,9'
          Dst:             uni_utf8_is_nf
    - functionName:    uni_utf8_is_nfkd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_is_nf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:408,9'
          Dst:             uni_utf8_is_nf
    - functionName:    uni_utf8_is_nfd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_is_nf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:403,9'
          Dst:             uni_utf8_is_nf
    - functionName:    uni_utf8_to_nfkc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:367,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:367,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:369,6'
          Dst:             uni_utf8_write_nf_common
        - Src:             'unichar.c:371,14'
          Dst:             str_c
    - functionName:    uni_utf8_write_nf_common
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_run_transform
        - unicode_nf_init
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:309,2'
          Dst:             unicode_nf_init
        - Src:             'unichar.c:311,9'
          Dst:             uni_utf8_run_transform
    - functionName:    uni_utf8_to_nfc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:357,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:357,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:359,6'
          Dst:             uni_utf8_write_nf_common
        - Src:             'unichar.c:361,14'
          Dst:             str_c
    - functionName:    uni_utf8_to_nfkd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:347,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:347,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:349,6'
          Dst:             uni_utf8_write_nf_common
        - Src:             'unichar.c:351,14'
          Dst:             str_c
    - functionName:    uni_utf8_to_nfd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_create_dynamic
        - pool_datastack_create
        - str_c
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:337,21'
          Dst:             pool_datastack_create
        - Src:             'unichar.c:337,21'
          Dst:             buffer_create_dynamic
        - Src:             'unichar.c:339,6'
          Dst:             uni_utf8_write_nf_common
        - Src:             'unichar.c:341,14'
          Dst:             str_c
    - functionName:    uni_utf8_write_nfkc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:332,9'
          Dst:             uni_utf8_write_nf_common
    - functionName:    uni_utf8_write_nfc
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:327,9'
          Dst:             uni_utf8_write_nf_common
    - functionName:    uni_utf8_write_nfkd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:322,9'
          Dst:             uni_utf8_write_nf_common
    - functionName:    uni_utf8_write_nfd
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_write_nf_common
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:317,9'
          Dst:             uni_utf8_write_nf_common
    - functionName:    unicode_code_point_get_data
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          64
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uni_ucs4_to_titlecase
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unicode_code_point_get_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:235,3'
          Dst:             unicode_code_point_get_data
    - functionName:    uni_utf8_partial_strlen_n
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - uni_utf8_char_bytes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:222,11'
          Dst:             uni_utf8_char_bytes
    - functionName:    uni_utf8_strlen_n
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_partial_strlen_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:211,9'
          Dst:             uni_utf8_partial_strlen_n
    - functionName:    uni_utf8_strlen
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - uni_utf8_strlen_n
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:204,34'
          Dst:             strlen
        - Src:             'unichar.c:204,9'
          Dst:             uni_utf8_strlen_n
    - functionName:    uni_utf8_to_ucs4_n
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - uni_utf8_get_char_n
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:145,13'
          Dst:             uni_utf8_get_char_n
        - Src:             'unichar.c:150,3'
          Dst:             array_append_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    uni_utf8_to_ucs4
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - uni_utf8_get_char
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:127,13'
          Dst:             uni_utf8_get_char
        - Src:             'unichar.c:134,3'
          Dst:             array_append_i
    - functionName:    uni_utf8_get_char
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_parse_char
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:109,9'
          Dst:             uni_utf8_parse_char
    - functionName:    uni_utf8_get_char_buf
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_utf8_parse_char
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unichar.c:119,9'
          Dst:             uni_utf8_parse_char
    - functionName:    uni_strlen
      functionSourceFile: '/src/dovecot/src/lib/unichar.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_code_point_get_data
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          64
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_gc_break_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-break.c'
      linkageType:     externalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         191
      ICount:          964
      EdgeCount:       241
      CyclomaticComplexity: 52
      functionsReached:
        - i_unreached
        - unicode_code_point_get_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'unicode-break.c:157,2'
          Branch Sides:    []
        - Branch String:   'unicode-break.c:159,3'
          Branch Sides:    []
        - Branch String:   'unicode-break.c:168,3'
          Branch Sides:    []
        - Branch String:   'unicode-break.c:180,3'
          Branch Sides:    []
        - Branch String:   'unicode-break.c:206,2'
          Branch Sides:    []
      Callsites:
        - Src:             'unicode-break.c:24,15'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-break.c:195,3'
          Dst:             i_unreached
        - Src:             'unicode-break.c:232,3'
          Dst:             i_unreached
    - functionName:    unicode_gc_break_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-break.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 18
      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:    unicode_code_point_data_get_casefold_mapping
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_code_point_data_get_lowercase_mapping
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_code_point_data_get_uppercase_mapping
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_casemap_input_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          194
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - i_panic
        - unicode_code_point_get_data
        - uniform_transform_forward
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:991,13'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:1003,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:1007,9'
          Dst:             uniform_transform_forward
        - Src:             'unicode-transform.c:1011,3'
          Dst:             i_panic
    - functionName:    unicode_code_point_get_data
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          64
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uniform_transform_forward
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          160
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:28,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:29,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:30,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:33,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:34,2'
          Dst:             i_panic
    - functionName:    unicode_casemap_flush
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - unicode_casemap_input_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:1074,8'
          Dst:             unicode_casemap_input_cp
        - Src:             'unicode-transform.c:1075,2'
          Dst:             i_panic
    - functionName:    unicode_casemap_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1032
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          166
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - unicode_casemap_flush
        - unicode_casemap_input_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:1037,8'
          Dst:             unicode_casemap_flush
        - Src:             'unicode-transform.c:1039,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:1049,9'
          Dst:             unicode_casemap_input_cp
        - Src:             'unicode-transform.c:1054,4'
          Dst:             i_panic
    - functionName:    unicode_nf_check_sink_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          150
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:813,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:814,2'
          Dst:             i_panic
    - functionName:    unicode_code_point_data_find_composition
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_hangul_compose_pair
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_nf_buffer_delete
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:334,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:335,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:336,2'
          Dst:             i_panic
    - functionName:    unicode_nf_compose_pair
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - unicode_code_point_data_find_composition
        - unicode_code_point_get_data
        - unicode_hangul_compose_pair
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:623,18'
          Dst:             unicode_hangul_compose_pair
        - Src:             'unicode-transform.c:629,13'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:630,9'
          Dst:             unicode_code_point_data_find_composition
    - functionName:    unicode_nf_flush_more
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          429
      EdgeCount:       72
      CyclomaticComplexity: 18
      functionsReached:
        - i_panic
        - unicode_code_point_get_data
        - unicode_nf_buffer_delete
        - unicode_nf_compose_pair
        - uniform_transform_forward
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:652,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:668,6'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:674,12'
          Dst:             unicode_nf_compose_pair
        - Src:             'unicode-transform.c:697,4'
          Dst:             unicode_nf_buffer_delete
        - Src:             'unicode-transform.c:711,9'
          Dst:             uniform_transform_forward
        - Src:             'unicode-transform.c:716,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:717,2'
          Dst:             unicode_nf_buffer_delete
    - functionName:    unicode_nf_buffer_swap
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          56
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_code_point_data_get_full_decomposition
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          55
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_nf_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          781
      EdgeCount:       158
      CyclomaticComplexity: 33
      functionsReached:
        - i_panic
        - unicode_code_point_data_get_full_decomposition
        - unicode_code_point_get_data
        - unicode_hangul_decompose
        - unicode_nf_buffer_swap
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:376,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:391,17'
          Dst:             unicode_hangul_decompose
        - Src:             'unicode-transform.c:395,10'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:396,9'
          Dst:             unicode_code_point_data_get_full_decomposition
        - Src:             'unicode-transform.c:405,12'
          Dst:             unicode_code_point_data_get_full_decomposition
        - Src:             'unicode-transform.c:416,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:417,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:425,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:463,10'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:485,11'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:498,4'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:510,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:515,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:526,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:556,5'
          Dst:             unicode_nf_buffer_swap
    - functionName:    unicode_hangul_decompose
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          77
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_nf_input_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          156
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - i_panic
        - unicode_nf_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:571,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:583,8'
          Dst:             unicode_nf_cp
        - Src:             'unicode-transform.c:587,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:597,8'
          Dst:             unicode_nf_cp
    - functionName:    unicode_nf_flush
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - unicode_nf_cp
        - unicode_nf_flush_more
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:733,8'
          Dst:             unicode_nf_flush_more
        - Src:             'unicode-transform.c:738,7'
          Dst:             unicode_nf_cp
        - Src:             'unicode-transform.c:742,9'
          Dst:             unicode_nf_flush_more
    - functionName:    unicode_nf_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - unicode_nf_input_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:611,8'
          Dst:             unicode_nf_input_cp
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    unicode_static_array_sink_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          78
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - i_memcpy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:194,2'
          Dst:             i_memcpy
    - functionName:    unicode_buffer_sink_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uni_ucs4_to_utf8
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:154,2'
          Dst:             uni_ucs4_to_utf8
    - functionName:    unicode_code_point_get_full_decomposition
      functionSourceFile: '/src/dovecot/src/lib/./unicode-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_code_point_data_get_full_decomposition
        - unicode_code_point_get_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './unicode-data.h:119,3'
          Dst:             unicode_code_point_get_data
        - Src:             './unicode-data.h:121,9'
          Dst:             unicode_code_point_data_get_full_decomposition
    - functionName:    unicode_rfc5051_normalize
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - unicode_code_point_get_data
        - unicode_code_point_get_full_decomposition
        - unicode_hangul_decompose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:1094,8'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:1100,10'
          Dst:             unicode_hangul_decompose
        - Src:             'unicode-transform.c:1103,8'
          Dst:             unicode_code_point_get_full_decomposition
    - functionName:    unicode_rfc5051_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1086
      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:    unicode_casemap_casefold_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 979
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_code_point_data_get_casefold_mapping
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:979,9'
          Dst:             unicode_code_point_data_get_casefold_mapping
    - functionName:    unicode_casemap_init_casefold
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 959
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:957,2'
          Dst:             unicode_transform_init
    - functionName:    unicode_transform_init
      functionSourceFile: '/src/dovecot/src/lib/./unicode-transform.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unicode_casemap_lowercase_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_code_point_data_get_lowercase_mapping
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:972,9'
          Dst:             unicode_code_point_data_get_lowercase_mapping
    - functionName:    unicode_casemap_init_lowercase
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:950,2'
          Dst:             unicode_transform_init
    - functionName:    unicode_casemap_uppercase_cp
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_code_point_data_get_uppercase_mapping
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:965,9'
          Dst:             unicode_code_point_data_get_uppercase_mapping
    - functionName:    unicode_casemap_init_uppercase
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:943,2'
          Dst:             unicode_transform_init
    - functionName:    unicode_nf_checker_finish
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - unicode_transform_flush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:908,8'
          Dst:             unicode_transform_flush
        - Src:             'unicode-transform.c:909,2'
          Dst:             i_panic
    - functionName:    unicode_transform_flush
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          147
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:110,6'
          Dst:             i_panic
    - functionName:    unicode_nf_checker_input
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          373
      EdgeCount:       71
      CyclomaticComplexity: 16
      functionsReached:
        - i_panic
        - unicode_code_point_get_data
        - unicode_nf_reset
        - unicode_transform_flush
        - unicode_transform_input_buf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:837,15'
          Dst:             unicode_code_point_get_data
        - Src:             'unicode-transform.c:856,10'
          Dst:             unicode_transform_flush
        - Src:             'unicode-transform.c:858,4'
          Dst:             i_panic
        - Src:             'unicode-transform.c:861,4'
          Dst:             unicode_nf_reset
        - Src:             'unicode-transform.c:863,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:878,10'
          Dst:             unicode_transform_input_buf
        - Src:             'unicode-transform.c:880,3'
          Dst:             i_panic
        - Src:             'unicode-transform.c:885,2'
          Dst:             i_panic
        - Src:             'unicode-transform.c:893,9'
          Dst:             unicode_transform_input_buf
        - Src:             'unicode-transform.c:894,2'
          Dst:             i_panic
    - functionName:    unicode_nf_reset
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unicode_nf_init
        - unicode_transform_chain
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:323,2'
          Dst:             unicode_nf_init
        - Src:             'unicode-transform.c:324,2'
          Dst:             unicode_transform_chain
    - functionName:    unicode_transform_input_buf
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          242
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:54,4'
          Dst:             i_panic
        - Src:             'unicode-transform.c:57,5'
          Dst:             i_panic
        - Src:             'unicode-transform.c:61,5'
          Dst:             i_panic
        - Src:             'unicode-transform.c:78,6'
          Dst:             i_panic
    - functionName:    unicode_nf_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - unicode_transform_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'unicode-transform.c:296,2'
          Branch Sides:    []
      Callsites:
        - Src:             'unicode-transform.c:294,2'
          Dst:             unicode_transform_init
    - functionName:    unicode_transform_chain
      functionSourceFile: '/src/dovecot/src/lib/./unicode-transform.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './unicode-transform.h:46,2'
          Dst:             i_panic
    - functionName:    unicode_nf_checker_reset
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unicode_nf_checker_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:801,2'
          Dst:             unicode_nf_checker_init
    - functionName:    unicode_nf_checker_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - unicode_nf_init
        - unicode_transform_chain
        - unicode_transform_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   'unicode-transform.c:763,2'
          Branch Sides:    []
      Callsites:
        - Src:             'unicode-transform.c:790,2'
          Dst:             unicode_nf_init
        - Src:             'unicode-transform.c:791,2'
          Dst:             unicode_transform_init
        - Src:             'unicode-transform.c:792,2'
          Dst:             unicode_transform_chain
    - functionName:    unicode_static_array_sink_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:174,2'
          Dst:             unicode_transform_init
    - functionName:    unicode_buffer_sink_init
      functionSourceFile: '/src/dovecot/src/lib/unicode-transform.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unicode_transform_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'unicode-transform.c:142,2'
          Dst:             unicode_transform_init
    - functionName:    utc_offset
      functionSourceFile: '/src/dovecot/src/lib/utc-offset.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 11
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tm_cmp
      functionSourceFile: '/src/dovecot/src/lib/utc-mktime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          108
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    adjust_leap_second
      functionSourceFile: '/src/dovecot/src/lib/utc-mktime.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utc_mktime
      functionSourceFile: '/src/dovecot/src/lib/utc-mktime.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - adjust_leap_second
        - timegm
        - tm_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'utc-mktime.c:36,2'
          Dst:             adjust_leap_second
        - Src:             'utc-mktime.c:40,6'
          Dst:             timegm
        - Src:             'utc-mktime.c:41,6'
          Dst:             tm_cmp
    - functionName:    timegm
      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:    is_escaped
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    str_append_data
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:39,2'
          Dst:             buffer_append
    - functionName:    wildcard_str_escape
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - str_append
        - str_append_c
        - str_append_data
        - str_c
        - strlen
        - strpbrk
        - t_str_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:175,18'
          Dst:             strpbrk
        - Src:             'wildcard-match.c:179,40'
          Dst:             strlen
        - Src:             'wildcard-match.c:179,18'
          Dst:             t_str_new
        - Src:             'wildcard-match.c:181,3'
          Dst:             str_append_data
        - Src:             'wildcard-match.c:182,3'
          Dst:             str_append_c
        - Src:             'wildcard-match.c:183,3'
          Dst:             str_append_c
        - Src:             'wildcard-match.c:186,7'
          Dst:             strpbrk
        - Src:             'wildcard-match.c:188,2'
          Dst:             str_append
        - Src:             'wildcard-match.c:189,9'
          Dst:             str_c
    - functionName:    wildcard_is_escaped_literal
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strpbrk
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:163,14'
          Dst:             strpbrk
    - functionName:    wildcard_match_escaped_icase
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - wildcard_match_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:156,9'
          Dst:             wildcard_match_int
    - functionName:    wildcard_match_int
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         98
      ICount:          510
      EdgeCount:       130
      CyclomaticComplexity: 34
      functionsReached:
        - is_escaped
        - toupper
      functionUses:    4
      BranchProfiles:
        - Branch String:   'wildcard-match.c:71,5'
          Branch Sides:    []
      Callsites:
        - Src:             'wildcard-match.c:73,22'
          Dst:             is_escaped
        - Src:             'wildcard-match.c:83,22'
          Dst:             is_escaped
        - Src:             'wildcard-match.c:94,21'
          Dst:             is_escaped
        - Src:             'wildcard-match.c:103,22'
          Dst:             is_escaped
        - Src:             'wildcard-match.c:115,18'
          Dst:             toupper
        - Src:             'wildcard-match.c:115,38'
          Dst:             toupper
        - Src:             'wildcard-match.c:134,17'
          Dst:             is_escaped
    - functionName:    wildcard_match_escaped
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - wildcard_match_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:151,9'
          Dst:             wildcard_match_int
    - functionName:    wildcard_match_icase
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - wildcard_match_int
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:146,9'
          Dst:             wildcard_match_int
    - functionName:    wildcard_match
      functionSourceFile: '/src/dovecot/src/lib/wildcard-match.c'
      linkageType:     externalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - wildcard_match_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'wildcard-match.c:141,9'
          Dst:             wildcard_match_int
    - functionName:    pwrite_full
      functionSourceFile: '/src/dovecot/src/lib/write-full.c'
      linkageType:     externalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_panic
        - pwrite
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write-full.c:37,2'
          Dst:             i_panic
        - Src:             'write-full.c:40,9'
          Dst:             pwrite
        - Src:             'write-full.c:47,4'
          Dst:             __errno_location
    - functionName:    write_full
      functionSourceFile: '/src/dovecot/src/lib/write-full.c'
      linkageType:     externalLinkage
      functionLinenumber: 9
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_panic
        - write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write-full.c:12,2'
          Dst:             i_panic
        - Src:             'write-full.c:15,9'
          Dst:             write
        - Src:             'write-full.c:22,4'
          Dst:             __errno_location
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib/./strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    str_len
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    backtrace_get
      functionSourceFile: '/src/dovecot/src/lib/backtrace-string.c'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - backtrace_append
        - str_c
        - t_str_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'backtrace-string.c:175,8'
          Dst:             t_str_new
        - Src:             'backtrace-string.c:176,6'
          Dst:             backtrace_append
        - Src:             'backtrace-string.c:179,17'
          Dst:             str_c
    - functionName:    backtrace_append
      functionSourceFile: '/src/dovecot/src/lib/backtrace-string.c'
      linkageType:     externalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - backtrace_append_libc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'backtrace-string.c:168,9'
          Dst:             backtrace_append_libc
    - functionName:    backtrace_append_libc
      functionSourceFile: '/src/dovecot/src/lib/backtrace-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          166
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - backtrace
        - backtrace_symbols
        - str_append
        - str_begins_with
        - str_len
        - strncmp
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'backtrace-string.c:76,25'
          Dst:             str_len
        - Src:             'backtrace-string.c:81,8'
          Dst:             backtrace
        - Src:             'backtrace-string.c:87,12'
          Dst:             backtrace_symbols
        - Src:             'backtrace-string.c:93,7'
          Dst:             str_len
        - Src:             'backtrace-string.c:94,4'
          Dst:             str_append
        - Src:             'backtrace-string.c:96,7'
          Dst:             str_len
        - Src:             'backtrace-string.c:97,8'
          Dst:             strncmp
        - Src:             'backtrace-string.c:97,8'
          Dst:             str_begins_with
        - Src:             'backtrace-string.c:102,25'
          Dst:             strrchr
        - Src:             'backtrace-string.c:107,4'
          Dst:             str_append
    - 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:    1
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bits_required64
      functionSourceFile: '/src/dovecot/src/lib/./bits.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nearest_power
      functionSourceFile: '/src/dovecot/src/lib/bits.c'
      linkageType:     externalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - bits_required64
        - i_panic
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'bits.c:18,3'
          Dst:             i_panic
        - Src:             'bits.c:23,16'
          Dst:             bits_required64
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    env_backup_free
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pool_unref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:128,2'
          Dst:             pool_unref
    - functionName:    env_backup_restore
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - env_clean
        - env_put_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:119,2'
          Dst:             env_clean
        - Src:             'env-util.c:120,2'
          Dst:             env_put_array
    - functionName:    env_clean
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - clearenv
        - i_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:45,6'
          Dst:             clearenv
        - Src:             'env-util.c:46,3'
          Dst:             i_fatal
    - functionName:    env_put_array
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - env_put
        - i_panic
        - strchr
        - t_pop
        - t_push
        - t_strdup_until
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:27,23'
          Dst:             strchr
        - Src:             'env-util.c:28,3'
          Dst:             i_panic
        - Src:             'env-util.c:29,3'
          Dst:             t_push
        - Src:             'env-util.c:30,23'
          Dst:             t_strdup_until
        - Src:             'env-util.c:31,4'
          Dst:             env_put
        - Src:             'env-util.c:32,5'
          Dst:             t_pop
        - Src:             'env-util.c:32,5'
          Dst:             i_panic
    - functionName:    env_put
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 22
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - i_panic
        - setenv
        - strchr
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:18,2'
          Dst:             strchr
        - Src:             'env-util.c:18,2'
          Dst:             i_panic
        - Src:             'env-util.c:20,6'
          Dst:             setenv
        - Src:             'env-util.c:21,3'
          Dst:             i_fatal
    - 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:    clearenv
      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:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    env_get_environ_p
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    env_backup_save
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - env_get_environ_p
        - i_panic
        - malloc_multiply_check
        - p_malloc
        - p_strdup
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:99,20'
          Dst:             env_get_environ_p
        - Src:             'env-util.c:104,2'
          Dst:             i_panic
        - Src:             'env-util.c:108,9'
          Dst:             pool_alloconly_create
        - Src:             'env-util.c:109,8'
          Dst:             malloc_multiply_check
        - Src:             'env-util.c:109,8'
          Dst:             p_malloc
        - Src:             'env-util.c:111,17'
          Dst:             malloc_multiply_check
        - Src:             'env-util.c:111,17'
          Dst:             p_malloc
        - Src:             'env-util.c:113,21'
          Dst:             p_strdup
    - functionName:    env_clean_except_real
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - array_append_i
        - array_create_i
        - array_get_i
        - env_clean
        - env_put
        - getenv
        - pool_datastack_create
        - t_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:67,2'
          Dst:             pool_datastack_create
        - Src:             'env-util.c:67,2'
          Dst:             array_create_i
        - Src:             'env-util.c:71,11'
          Dst:             getenv
        - Src:             'env-util.c:73,10'
          Dst:             t_strdup
        - Src:             'env-util.c:74,12'
          Dst:             t_strdup
        - Src:             'env-util.c:75,4'
          Dst:             array_append_i
        - Src:             'env-util.c:76,4'
          Dst:             array_append_i
        - Src:             'env-util.c:83,2'
          Dst:             env_clean
        - Src:             'env-util.c:85,9'
          Dst:             array_get_i
        - Src:             'env-util.c:87,3'
          Dst:             env_put
    - functionName:    env_clean_except
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - env_clean_except_real
        - i_panic
        - t_pop
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:92,2'
          Dst:             t_push
        - Src:             'env-util.c:93,3'
          Dst:             env_clean_except_real
        - Src:             'env-util.c:94,4'
          Dst:             t_pop
        - Src:             'env-util.c:94,4'
          Dst:             i_panic
    - functionName:    env_remove
      functionSourceFile: '/src/dovecot/src/lib/env-util.c'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_fatal
        - unsetenv
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'env-util.c:38,6'
          Dst:             unsetenv
        - Src:             'env-util.c:39,3'
          Dst:             i_fatal
    - 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:    event_filter_query_update_category
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          153
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - event_filter_query_update_category
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'event-filter.c:1226,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:1228,3'
          Dst:             event_filter_query_update_category
        - Src:             'event-filter.c:1229,3'
          Dst:             event_filter_query_update_category
        - Src:             'event-filter.c:1246,8'
          Dst:             strcmp
    - functionName:    event_match_strlist_recursive
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          141
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - cmp_str
        - event_find_field_nonrecursive
        - event_match_strlist_recursive
        - i_memcpy
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:728,10'
          Dst:             event_find_field_nonrecursive
        - Src:             'event-filter.c:730,3'
          Dst:             i_panic
        - Src:             'event-filter.c:731,3'
          Dst:             i_memcpy
        - Src:             'event-filter.c:733,8'
          Dst:             cmp_str
        - Src:             'event-filter.c:737,9'
          Dst:             event_match_strlist_recursive
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    cmp_str
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
        - strcmp
        - wildcard_match_escaped
        - wildcard_match_escaped_icase
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:699,11'
          Dst:             wildcard_match_escaped
        - Src:             'event-filter.c:701,11'
          Dst:             wildcard_match_escaped_icase
        - Src:             'event-filter.c:704,11'
          Dst:             strcmp
        - Src:             'event-filter.c:706,11'
          Dst:             strcasecmp
    - functionName:    event_match_strlist
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 761
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - event_get_global
        - event_match_strlist_recursive
        - wanted_field_value_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:745,29'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:748,6'
          Dst:             event_match_strlist_recursive
        - Src:             'event-filter.c:751,36'
          Dst:             event_get_global
        - Src:             'event-filter.c:751,6'
          Dst:             event_match_strlist_recursive
    - functionName:    wanted_field_value_str
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - i_unreached
        - net_ip2addr
        - t_strdup_printf
      functionUses:    10
      BranchProfiles:
        - Branch String:   'event-filter.c:105,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:109,10'
          Dst:             t_strdup_printf
        - Src:             'event-filter.c:111,21'
          Dst:             net_ip2addr
        - Src:             'event-filter.c:115,10'
          Dst:             t_strdup_printf
        - Src:             'event-filter.c:121,2'
          Dst:             i_unreached
    - functionName:    event_filter_handle_numeric_operation
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       25
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:
        - Branch String:   'event-filter.c:767,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:781,3'
          Dst:             i_unreached
        - Src:             'event-filter.c:783,2'
          Dst:             i_unreached
    - functionName:    cmp_value
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cmp_str
        - wanted_field_value_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:714,24'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:714,9'
          Dst:             cmp_str
    - functionName:    event_category_match
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_has_category_nonrecursive
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - array_is_created_i
        - event_category_match
        - i_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:655,6'
          Dst:             array_is_created_i
        - Src:             'event-filter.c:656,3'
          Dst:             i_memcpy
        - Src:             'event-filter.c:657,8'
          Dst:             event_category_match
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_match_field
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         128
      ICount:          830
      EdgeCount:       161
      CyclomaticComplexity: 35
      functionsReached:
        - cmp_value
        - event_filter_export_query_expr_op
        - event_filter_handle_numeric_operation
        - event_find_field_recursive
        - event_get_last_duration
        - event_match_strlist
        - i_panic
        - i_snprintf
        - i_unreached
        - i_warning
        - net_ip2addr
        - net_is_in_network
        - strcmp
        - t_pop
        - t_push
        - wanted_field_value_str
        - wildcard_match_escaped_icase
      functionUses:    2
      BranchProfiles:
        - Branch String:   'event-filter.c:819,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:796,6'
          Dst:             strcmp
        - Src:             'event-filter.c:801,3'
          Dst:             event_get_last_duration
        - Src:             'event-filter.c:806,11'
          Dst:             event_find_field_recursive
        - Src:             'event-filter.c:831,8'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:827,5'
          Dst:             i_warning
        - Src:             'event-filter.c:843,3'
          Dst:             t_push
        - Src:             'event-filter.c:845,8'
          Dst:             strcmp
        - Src:             'event-filter.c:847,6'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:849,11'
          Dst:             cmp_value
        - Src:             'event-filter.c:851,5'
          Dst:             t_pop
        - Src:             'event-filter.c:851,5'
          Dst:             i_panic
        - Src:             'event-filter.c:865,8'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:858,5'
          Dst:             i_warning
        - Src:             'event-filter.c:873,11'
          Dst:             event_filter_handle_numeric_operation
        - Src:             'event-filter.c:884,8'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:880,5'
          Dst:             i_warning
        - Src:             'event-filter.c:902,8'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:903,8'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:896,5'
          Dst:             i_warning
        - Src:             'event-filter.c:911,4'
          Dst:             i_snprintf
        - Src:             'event-filter.c:912,4'
          Dst:             t_push
        - Src:             'event-filter.c:914,6'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:913,11'
          Dst:             wildcard_match_escaped_icase
        - Src:             'event-filter.c:915,6'
          Dst:             t_pop
        - Src:             'event-filter.c:915,6'
          Dst:             i_panic
        - Src:             'event-filter.c:922,8'
          Dst:             i_warning
        - Src:             'event-filter.c:941,8'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:937,5'
          Dst:             i_warning
        - Src:             'event-filter.c:949,11'
          Dst:             net_is_in_network
        - Src:             'event-filter.c:965,8'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:961,5'
          Dst:             i_warning
        - Src:             'event-filter.c:972,3'
          Dst:             t_push
        - Src:             'event-filter.c:973,39'
          Dst:             net_ip2addr
        - Src:             'event-filter.c:974,11'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:973,10'
          Dst:             wildcard_match_escaped_icase
        - Src:             'event-filter.c:975,5'
          Dst:             t_pop
        - Src:             'event-filter.c:975,5'
          Dst:             i_panic
        - Src:             'event-filter.c:988,8'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:983,5'
          Dst:             i_warning
        - Src:             'event-filter.c:995,3'
          Dst:             t_push
        - Src:             'event-filter.c:996,10'
          Dst:             event_match_strlist
        - Src:             'event-filter.c:997,5'
          Dst:             t_pop
        - Src:             'event-filter.c:997,5'
          Dst:             i_panic
        - Src:             'event-filter.c:1000,2'
          Dst:             i_unreached
    - functionName:    event_filter_export_query_expr_op
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          63
      EdgeCount:       25
      CyclomaticComplexity: 13
      functionsReached:
        - i_unreached
      functionUses:    8
      BranchProfiles:
        - Branch String:   'event-filter.c:511,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:515,3'
          Dst:             i_unreached
        - Src:             'event-filter.c:528,2'
          Dst:             i_unreached
    - functionName:    event_has_category
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - event_get_global
        - event_get_parent
        - event_has_category_nonrecursive
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:679,7'
          Dst:             event_has_category_nonrecursive
        - Src:             'event-filter.c:682,11'
          Dst:             event_get_parent
        - Src:             'event-filter.c:685,10'
          Dst:             event_get_global
        - Src:             'event-filter.c:687,7'
          Dst:             event_has_category_nonrecursive
        - Src:             'event-filter.c:689,11'
          Dst:             event_get_parent
    - functionName:    event_filter_append_escaped
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_append
        - str_append_escaped
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:501,33'
          Dst:             strlen
        - Src:             'event-filter.c:501,3'
          Dst:             str_append_escaped
        - Src:             'event-filter.c:504,3'
          Dst:             str_append
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    event_filter_export_query_expr
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          254
      EdgeCount:       56
      CyclomaticComplexity: 29
      functionsReached:
        - event_filter_append_escaped
        - event_filter_category_from_log_type
        - event_filter_export_query_expr
        - event_filter_export_query_expr_op
        - i_unreached
        - str_append
        - str_append_c
        - wanted_field_value_str
      functionUses:    6
      BranchProfiles:
        - Branch String:   'event-filter.c:536,2'
          Branch Sides:    []
        - Branch String:   'event-filter.c:539,3'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:538,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:541,4'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:542,4'
          Dst:             str_append
        - Src:             'event-filter.c:543,4'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:546,4'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:547,4'
          Dst:             str_append
        - Src:             'event-filter.c:548,4'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:551,4'
          Dst:             str_append
        - Src:             'event-filter.c:552,4'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:559,4'
          Dst:             i_unreached
        - Src:             'event-filter.c:561,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:565,3'
          Dst:             str_append
        - Src:             'event-filter.c:566,20'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:566,3'
          Dst:             str_append
        - Src:             'event-filter.c:567,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:568,3'
          Dst:             event_filter_append_escaped
        - Src:             'event-filter.c:570,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:573,3'
          Dst:             str_append
        - Src:             'event-filter.c:574,20'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:574,3'
          Dst:             str_append
        - Src:             'event-filter.c:575,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:576,3'
          Dst:             event_filter_append_escaped
        - Src:             'event-filter.c:577,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:580,3'
          Dst:             str_append
        - Src:             'event-filter.c:581,20'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:581,3'
          Dst:             str_append
        - Src:             'event-filter.c:583,4'
          Dst:             str_append_c
        - Src:             'event-filter.c:584,4'
          Dst:             event_filter_append_escaped
        - Src:             'event-filter.c:585,4'
          Dst:             str_append_c
        - Src:             'event-filter.c:587,21'
          Dst:             event_filter_category_from_log_type
        - Src:             'event-filter.c:587,4'
          Dst:             str_append
        - Src:             'event-filter.c:592,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:593,3'
          Dst:             event_filter_append_escaped
        - Src:             'event-filter.c:594,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:595,20'
          Dst:             event_filter_export_query_expr_op
        - Src:             'event-filter.c:595,3'
          Dst:             str_append
        - Src:             'event-filter.c:596,3'
          Dst:             str_append_c
        - Src:             'event-filter.c:598,4'
          Dst:             wanted_field_value_str
        - Src:             'event-filter.c:597,3'
          Dst:             event_filter_append_escaped
        - Src:             'event-filter.c:600,3'
          Dst:             str_append_c
    - functionName:    str_append_c
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_c
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:44,2'
          Dst:             buffer_append_c
    - functionName:    event_filter_category_from_log_type
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:368,2'
          Dst:             i_unreached
    - functionName:    array_append_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:213,2'
          Dst:             buffer_append_array
    - functionName:    clone_expr
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          371
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_i
        - array_count_i
        - array_create_i
        - array_is_created_i
        - clone_expr
        - i_memcpy
        - malloc_multiply_check
        - p_malloc
        - p_strdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'event-filter.c:382,2'
          Branch Sides:    []
        - Branch String:   'event-filter.c:396,3'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:379,8'
          Dst:             malloc_multiply_check
        - Src:             'event-filter.c:379,8'
          Dst:             p_malloc
        - Src:             'event-filter.c:384,22'
          Dst:             clone_expr
        - Src:             'event-filter.c:385,22'
          Dst:             clone_expr
        - Src:             'event-filter.c:389,24'
          Dst:             p_strdup
        - Src:             'event-filter.c:393,20'
          Dst:             p_strdup
        - Src:             'event-filter.c:398,27'
          Dst:             p_strdup
        - Src:             'event-filter.c:411,8'
          Dst:             array_is_created_i
        - Src:             'event-filter.c:413,5'
          Dst:             array_count_i
        - Src:             'event-filter.c:413,5'
          Dst:             array_create_i
        - Src:             'event-filter.c:415,5'
          Dst:             i_memcpy
        - Src:             'event-filter.c:416,12'
          Dst:             p_strdup
        - Src:             'event-filter.c:417,6'
          Dst:             array_append_i
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_begins_with
      functionSourceFile: '/src/dovecot/src/lib/./strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './strfuncs.h:106,16'
          Dst:             str_match
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    filter_node_requires_event_name
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - filter_node_requires_event_name
      functionUses:    7
      BranchProfiles:
        - Branch String:   'event-filter.c:172,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:174,10'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:176,10'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:177,4'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:179,10'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:180,4'
          Dst:             filter_node_requires_event_name
    - functionName:    add_node
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:154,2'
          Dst:             i_panic
        - Src:             'event-filter.c:161,11'
          Dst:             malloc_multiply_check
        - Src:             'event-filter.c:161,11'
          Dst:             p_malloc
    - functionName:    event_filter_get_or_alloc_internal_query
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_append_space_i
        - buffer_get_modifiable_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:135,2'
          Dst:             buffer_get_modifiable_data
        - Src:             'event-filter.c:141,10'
          Dst:             array_append_space_i
    - functionName:    event_filter_deinit
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_category_unregister_callback
        - event_filter_category_registered
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1277,2'
          Dst:             event_category_unregister_callback
        - Src:             'event-filter.c:1277,2'
          Dst:             event_filter_category_registered
    - functionName:    event_filter_category_registered
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_get_modifiable_data
        - event_filter_query_update_category
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1263,3'
          Dst:             buffer_get_modifiable_data
        - Src:             'event-filter.c:1264,4'
          Dst:             event_filter_query_update_category
    - functionName:    event_filter_init
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_category_register_callback
        - event_filter_category_registered
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1272,2'
          Dst:             event_category_register_callback
        - Src:             'event-filter.c:1272,2'
          Dst:             event_filter_category_registered
    - functionName:    event_filter_register_cmp
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - p_strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1211,2'
          Dst:             i_panic
        - Src:             'event-filter.c:1213,20'
          Dst:             p_strdup
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_match_iter_deinit
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1204,2'
          Dst:             p_free_internal
    - functionName:    event_filter_match_iter_next
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - array_get_i
        - event_filter_query_match
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1183,12'
          Dst:             array_get_i
        - Src:             'event-filter.c:1190,7'
          Dst:             event_filter_query_match
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    event_filter_query_match
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_query_match_eval
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1093,2'
          Dst:             i_panic
        - Src:             'event-filter.c:1096,9'
          Dst:             event_filter_query_match_eval
    - functionName:    event_filter_query_match_eval
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          145
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_query_match_cmp
        - event_filter_query_match_eval
        - i_unreached
      functionUses:    6
      BranchProfiles:
        - Branch String:   'event-filter.c:1058,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:1064,10'
          Dst:             event_filter_query_match_cmp
        - Src:             'event-filter.c:1067,10'
          Dst:             event_filter_query_match_eval
        - Src:             'event-filter.c:1069,4'
          Dst:             event_filter_query_match_eval
        - Src:             'event-filter.c:1072,10'
          Dst:             event_filter_query_match_eval
        - Src:             'event-filter.c:1074,4'
          Dst:             event_filter_query_match_eval
        - Src:             'event-filter.c:1077,11'
          Dst:             event_filter_query_match_eval
        - Src:             'event-filter.c:1081,2'
          Dst:             i_unreached
    - functionName:    event_filter_query_match_cmp
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          256
      EdgeCount:       46
      CyclomaticComplexity: 6
      functionsReached:
        - event_has_category
        - event_match_field
        - i_panic
        - i_unreached
        - strchr
        - strcmp
        - t_pop
        - t_push
        - t_strdup_printf
        - wildcard_match_escaped
      functionUses:    1
      BranchProfiles:
        - Branch String:   'event-filter.c:1016,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:1010,2'
          Dst:             i_panic
        - Src:             'event-filter.c:1018,4'
          Dst:             i_unreached
        - Src:             'event-filter.c:1021,11'
          Dst:             strcmp
        - Src:             'event-filter.c:1024,5'
          Dst:             wildcard_match_escaped
        - Src:             'event-filter.c:1028,8'
          Dst:             strchr
        - Src:             'event-filter.c:1029,11'
          Dst:             strcmp
        - Src:             'event-filter.c:1030,9'
          Dst:             t_push
        - Src:             'event-filter.c:1032,6'
          Dst:             t_strdup_printf
        - Src:             'event-filter.c:1033,11'
          Dst:             strcmp
        - Src:             'event-filter.c:1034,6'
          Dst:             t_pop
        - Src:             'event-filter.c:1034,6'
          Dst:             i_panic
        - Src:             'event-filter.c:1038,11'
          Dst:             event_has_category
        - Src:             'event-filter.c:1040,11'
          Dst:             event_match_field
        - Src:             'event-filter.c:1044,11'
          Dst:             event_match_field
        - Src:             'event-filter.c:1048,2'
          Dst:             i_unreached
    - functionName:    event_filter_match_iter_init
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - event_filter_match_fastpath
        - i_panic
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1167,2'
          Dst:             i_panic
        - Src:             'event-filter.c:1169,9'
          Dst:             malloc_multiply_check
        - Src:             'event-filter.c:1169,9'
          Dst:             p_malloc
        - Src:             'event-filter.c:1173,7'
          Dst:             event_filter_match_fastpath
    - functionName:    event_filter_match_fastpath
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_idx_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:277,2'
          Dst:             i_panic
        - Src:             './array.h:278,9'
          Dst:             malloc_multiply_check
    - functionName:    event_filter_get_root_node
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_count_i
        - array_idx_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1146,13'
          Dst:             array_count_i
        - Src:             'event-filter.c:1150,3'
          Dst:             array_idx_i
    - functionName:    event_filter_match_source
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1141
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - event_filter_match_fastpath
        - event_filter_query_match
        - i_panic
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1129,2'
          Dst:             i_panic
        - Src:             'event-filter.c:1131,7'
          Dst:             event_filter_match_fastpath
        - Src:             'event-filter.c:1135,7'
          Dst:             event_filter_query_match
    - functionName:    event_filter_match
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - event_filter_match_source
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:1118,9'
          Dst:             event_filter_match_source
    - functionName:    event_filter_get_expr_for_testing
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_get_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:633,12'
          Dst:             array_get_i
    - functionName:    event_filter_export_query
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_export_query_expr
        - str_append_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:609,2'
          Dst:             str_append_c
        - Src:             'event-filter.c:610,2'
          Dst:             event_filter_export_query_expr
        - Src:             'event-filter.c:611,2'
          Dst:             str_append_c
    - functionName:    event_filter_export
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_export_query
        - str_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:621,4'
          Dst:             str_append
        - Src:             'event-filter.c:623,3'
          Dst:             event_filter_export_query
    - functionName:    event_filter_merge_with_context
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_merge_with_context_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:494,2'
          Dst:             event_filter_merge_with_context_internal
    - functionName:    event_filter_merge_with_context_internal
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          153
      EdgeCount:       24
      CyclomaticComplexity: 3
      functionsReached:
        - add_node
        - clone_expr
        - event_filter_get_or_alloc_internal_query
        - filter_node_requires_event_name
        - i_panic
        - i_unreached
        - t_pop
        - t_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'event-filter.c:442,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:450,3'
          Dst:             i_unreached
        - Src:             'event-filter.c:453,42'
          Dst:             t_push
        - Src:             'event-filter.c:457,9'
          Dst:             event_filter_get_or_alloc_internal_query
        - Src:             'event-filter.c:460,5'
          Dst:             clone_expr
        - Src:             'event-filter.c:459,3'
          Dst:             add_node
        - Src:             'event-filter.c:462,4'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:463,4'
          Dst:             t_pop
        - Src:             'event-filter.c:463,4'
          Dst:             i_panic
    - functionName:    event_filter_merge
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_merge_with_context_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:486,2'
          Dst:             event_filter_merge_with_context_internal
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    event_filter_remove_queries_with_context
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - array_delete_i
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:475,4'
          Dst:             array_delete_i
    - functionName:    event_filter_category_to_log_type
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:351,7'
          Dst:             strcmp
    - functionName:    event_filter_node_has_field_prefix
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          146
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - event_filter_node_has_field_prefix
        - str_begins_with
        - strcmp
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'event-filter.c:309,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:312,7'
          Dst:             strcmp
        - Src:             'event-filter.c:314,7'
          Dst:             strlen
        - Src:             'event-filter.c:314,7'
          Dst:             strncmp
        - Src:             'event-filter.c:314,7'
          Dst:             str_begins_with
        - Src:             'event-filter.c:319,7'
          Dst:             event_filter_node_has_field_prefix
        - Src:             'event-filter.c:321,7'
          Dst:             event_filter_node_has_field_prefix
    - functionName:    event_filter_has_field_prefix
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_node_has_field_prefix
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:339,7'
          Dst:             event_filter_node_has_field_prefix
    - functionName:    event_filter_node_find_field_exact
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - event_filter_node_find_field_exact
        - strcmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'event-filter.c:262,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter.c:265,7'
          Dst:             strcmp
        - Src:             'event-filter.c:273,11'
          Dst:             event_filter_node_find_field_exact
        - Src:             'event-filter.c:277,11'
          Dst:             event_filter_node_find_field_exact
        - Src:             'event-filter.c:283,10'
          Dst:             event_filter_node_find_field_exact
    - functionName:    event_filter_find_field_exact
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_node_find_field_exact
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:298,11'
          Dst:             event_filter_node_find_field_exact
    - functionName:    event_filter_parse_case_sensitive
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_filter_parse_real
        - i_panic
        - t_pop_pass_str
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:250,2'
          Dst:             t_push
        - Src:             'event-filter.c:251,9'
          Dst:             event_filter_parse_real
        - Src:             'event-filter.c:252,4'
          Dst:             t_pop_pass_str
        - Src:             'event-filter.c:252,4'
          Dst:             i_panic
    - functionName:    event_filter_parse_real
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          163
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - add_node
        - event_filter_get_or_alloc_internal_query
        - event_filter_parser_lex_destroy
        - event_filter_parser_lex_init
        - event_filter_parser_parse
        - event_filter_parser_set_extra
        - filter_node_requires_event_name
        - i_panic
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:197,14'
          Dst:             strlen
        - Src:             'event-filter.c:202,2'
          Dst:             event_filter_parser_lex_init
        - Src:             'event-filter.c:203,2'
          Dst:             event_filter_parser_set_extra
        - Src:             'event-filter.c:205,8'
          Dst:             event_filter_parser_parse
        - Src:             'event-filter.c:207,2'
          Dst:             event_filter_parser_lex_destroy
        - Src:             'event-filter.c:211,3'
          Dst:             i_panic
        - Src:             'event-filter.c:213,15'
          Dst:             event_filter_get_or_alloc_internal_query
        - Src:             'event-filter.c:215,3'
          Dst:             add_node
        - Src:             'event-filter.c:219,4'
          Dst:             filter_node_requires_event_name
        - Src:             'event-filter.c:222,3'
          Dst:             i_panic
    - functionName:    event_filter_parse
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - event_filter_parse_real
        - i_panic
        - t_pop_pass_str
        - t_push
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:239,2'
          Dst:             t_push
        - Src:             'event-filter.c:240,9'
          Dst:             event_filter_parse_real
        - Src:             'event-filter.c:241,4'
          Dst:             t_pop_pass_str
        - Src:             'event-filter.c:241,4'
          Dst:             i_panic
    - functionName:    pool_unref
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_unref
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          136
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - i_panic
        - pool_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:88,2'
          Dst:             i_panic
        - Src:             'event-filter.c:98,3'
          Dst:             pool_unref
    - functionName:    event_filter_ref
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:78,2'
          Dst:             i_panic
    - functionName:    event_filter_create_fragment
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_create_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:73,9'
          Dst:             event_filter_create_real
    - functionName:    event_filter_create_real
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - array_create_i
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:50,11'
          Dst:             malloc_multiply_check
        - Src:             'event-filter.c:50,11'
          Dst:             p_malloc
        - Src:             'event-filter.c:55,2'
          Dst:             array_create_i
    - functionName:    event_filter_create_with_pool
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_create_real
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:68,9'
          Dst:             event_filter_create_real
    - functionName:    event_filter_create
      functionSourceFile: '/src/dovecot/src/lib/event-filter.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_create_real
        - pool_alloconly_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter.c:63,34'
          Dst:             pool_alloconly_create
        - Src:             'event-filter.c:63,9'
          Dst:             event_filter_create_real
    - functionName:    i_memcpy
      functionSourceFile: '/src/dovecot/src/lib/./lib.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lib.h:75,2'
          Dst:             i_panic
    - functionName:    event_filter_parser_input_proc
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.l'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          108
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_parser_get_extra
        - i_memcpy
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.l:120,10'
          Dst:             event_filter_parser_get_extra
        - Src:             'event-filter-lexer.l:125,2'
          Dst:             i_panic
        - Src:             'event-filter-lexer.l:128,2'
          Dst:             i_memcpy
    - functionName:    event_filter_parser_get_extra
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1945
      functionLinenumberEnd: 1947
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_realloc
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_realloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.l:107,9'
          Dst:             i_realloc
    - functionName:    event_filter_parser_lex_destroy
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2192
      functionLinenumberEnd: 2217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          101
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - event_filter_parser__delete_buffer
        - event_filter_parser_free
        - event_filter_parser_pop_buffer_state
        - yy_init_globals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:2197,3'
          Dst:             event_filter_parser__delete_buffer
        - Src:             'event-filter-lexer.c:2199,3'
          Dst:             event_filter_parser_pop_buffer_state
        - Src:             'event-filter-lexer.c:2203,2'
          Dst:             event_filter_parser_free
        - Src:             'event-filter-lexer.c:2207,9'
          Dst:             event_filter_parser_free
        - Src:             'event-filter-lexer.c:2212,5'
          Dst:             yy_init_globals
        - Src:             'event-filter-lexer.c:2215,5'
          Dst:             event_filter_parser_free
    - functionName:    event_filter_parser__delete_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1651
      functionLinenumberEnd: 1664
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - event_filter_parser_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1661,3'
          Dst:             event_filter_parser_free
        - Src:             'event-filter-lexer.c:1663,2'
          Dst:             event_filter_parser_free
    - functionName:    event_filter_parser_pop_buffer_state
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1761
      functionLinenumberEnd: 1775
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - event_filter_parser__delete_buffer
        - event_filter_parser__load_buffer_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1766,2'
          Dst:             event_filter_parser__delete_buffer
        - Src:             'event-filter-lexer.c:1772,3'
          Dst:             event_filter_parser__load_buffer_state
    - functionName:    event_filter_parser_free
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          24
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.l:112,2'
          Dst:             p_free_internal
    - functionName:    yy_init_globals
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2158
      functionLinenumberEnd: 2187
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser__load_buffer_state
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1608
      functionLinenumberEnd: 1614
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          58
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_lex_init_extra
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2131
      functionLinenumberEnd: 2155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - event_filter_parser_alloc
        - event_filter_parser_set_extra
        - yy_init_globals
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:2134,5'
          Dst:             event_filter_parser_set_extra
        - Src:             'event-filter-lexer.c:2137,9'
          Dst:             __errno_location
        - Src:             'event-filter-lexer.c:2141,34'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:2144,9'
          Dst:             __errno_location
        - Src:             'event-filter-lexer.c:2152,5'
          Dst:             event_filter_parser_set_extra
        - Src:             'event-filter-lexer.c:2154,12'
          Dst:             yy_init_globals
    - functionName:    event_filter_parser_set_extra
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2018
      functionLinenumberEnd: 2021
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_alloc
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.l'
      linkageType:     externalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_malloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.l:102,9'
          Dst:             i_malloc
    - functionName:    event_filter_parser_lex_init
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2104
      functionLinenumberEnd: 2121
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - event_filter_parser_alloc
        - yy_init_globals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:2106,9'
          Dst:             __errno_location
        - Src:             'event-filter-lexer.c:2110,34'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:2113,9'
          Dst:             __errno_location
        - Src:             'event-filter-lexer.c:2120,12'
          Dst:             yy_init_globals
    - functionName:    event_filter_parser_set_lval
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2092
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_lval
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2086
      functionLinenumberEnd: 2088
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_set_debug
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2078
      functionLinenumberEnd: 2081
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_debug
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2074
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_set_out
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2066
      functionLinenumberEnd: 2069
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_set_in
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2060
      functionLinenumberEnd: 2063
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_set_column
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2043
      functionLinenumberEnd: 2051
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_fatal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:2048,12'
          Dst:             i_fatal
    - functionName:    event_filter_parser_set_lineno
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2036
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - i_fatal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:2033,12'
          Dst:             i_fatal
    - functionName:    event_filter_parser_get_text
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_leng
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1998
      functionLinenumberEnd: 2000
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_out
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1989
      functionLinenumberEnd: 1991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_in
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 1982
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_column
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1967
      functionLinenumberEnd: 1974
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser_get_lineno
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1961
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    event_filter_parser__scan_bytes
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1881
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          93
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - event_filter_parser__scan_buffer
        - event_filter_parser_alloc
        - i_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1889,17'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:1891,3'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1898,6'
          Dst:             event_filter_parser__scan_buffer
        - Src:             'event-filter-lexer.c:1900,3'
          Dst:             i_fatal
    - functionName:    event_filter_parser__scan_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1831
      functionLinenumberEnd: 1857
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          113
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - event_filter_parser__switch_to_buffer
        - event_filter_parser_alloc
        - i_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1840,24'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:1842,3'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1854,2'
          Dst:             event_filter_parser__switch_to_buffer
    - functionName:    event_filter_parser__switch_to_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1576
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          130
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - event_filter_parser__load_buffer_state
        - event_filter_parser_ensure_buffer_stack
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1584,2'
          Dst:             event_filter_parser_ensure_buffer_stack
        - Src:             'event-filter-lexer.c:1597,2'
          Dst:             event_filter_parser__load_buffer_state
    - functionName:    event_filter_parser_ensure_buffer_stack
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1781
      functionLinenumberEnd: 1822
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          117
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - event_filter_parser_alloc
        - event_filter_parser_realloc
        - i_fatal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1792,52'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:1796,4'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1811,52'
          Dst:             event_filter_parser_realloc
        - Src:             'event-filter-lexer.c:1816,4'
          Dst:             i_fatal
    - functionName:    event_filter_parser__scan_string
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1870
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_parser__scan_bytes
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1870,37'
          Dst:             strlen
        - Src:             'event-filter-lexer.c:1870,9'
          Dst:             event_filter_parser__scan_bytes
    - functionName:    event_filter_parser_push_buffer_state
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1730
      functionLinenumberEnd: 1754
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          146
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - event_filter_parser__load_buffer_state
        - event_filter_parser_ensure_buffer_stack
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1735,2'
          Dst:             event_filter_parser_ensure_buffer_stack
        - Src:             'event-filter-lexer.c:1752,2'
          Dst:             event_filter_parser__load_buffer_state
    - functionName:    event_filter_parser__flush_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1700
      functionLinenumberEnd: 1721
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - event_filter_parser__load_buffer_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1720,3'
          Dst:             event_filter_parser__load_buffer_state
    - functionName:    event_filter_parser__init_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1672
      functionLinenumberEnd: 1693
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - event_filter_parser__flush_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1673,15'
          Dst:             __errno_location
        - Src:             'event-filter-lexer.c:1676,2'
          Dst:             event_filter_parser__flush_buffer
        - Src:             'event-filter-lexer.c:1692,2'
          Dst:             __errno_location
    - functionName:    event_filter_parser_restart
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1569
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - event_filter_parser__create_buffer
        - event_filter_parser__init_buffer
        - event_filter_parser__load_buffer_state
        - event_filter_parser_ensure_buffer_stack
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1562,9'
          Dst:             event_filter_parser_ensure_buffer_stack
        - Src:             'event-filter-lexer.c:1564,13'
          Dst:             event_filter_parser__create_buffer
        - Src:             'event-filter-lexer.c:1567,2'
          Dst:             event_filter_parser__init_buffer
        - Src:             'event-filter-lexer.c:1568,2'
          Dst:             event_filter_parser__load_buffer_state
    - functionName:    event_filter_parser__create_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1643
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - event_filter_parser__init_buffer
        - event_filter_parser_alloc
        - i_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1626,24'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:1628,3'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1635,26'
          Dst:             event_filter_parser_alloc
        - Src:             'event-filter-lexer.c:1637,3'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1641,2'
          Dst:             event_filter_parser__init_buffer
    - functionName:    yy_get_next_buffer
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1411
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          539
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - event_filter_parser_input_proc
        - event_filter_parser_realloc
        - event_filter_parser_restart
        - i_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-lexer.c:1285,3'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1346,6'
          Dst:             event_filter_parser_realloc
        - Src:             'event-filter-lexer.c:1354,5'
          Dst:             i_fatal
        - Src:             'event-filter-lexer.c:1368,3'
          Dst:             event_filter_parser_input_proc
        - Src:             'event-filter-lexer.c:1379,4'
          Dst:             event_filter_parser_restart
        - Src:             'event-filter-lexer.c:1396,50'
          Dst:             event_filter_parser_realloc
        - Src:             'event-filter-lexer.c:1399,4'
          Dst:             i_fatal
    - functionName:    yy_try_NUL_trans
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1449
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yy_get_previous_state
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1440
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          140
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_append
      functionSourceFile: '/src/dovecot/src/lib/./str.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './str.h:35,27'
          Dst:             strlen
        - Src:             './str.h:35,2'
          Dst:             buffer_append
    - functionName:    event_filter_parser_lex
      functionSourceFile: '/src/dovecot/src/lib/event-filter-lexer.c'
      linkageType:     externalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         79
      ICount:          707
      EdgeCount:       91
      CyclomaticComplexity: 14
      functionsReached:
        - event_filter_parser__create_buffer
        - event_filter_parser__load_buffer_state
        - event_filter_parser_ensure_buffer_stack
        - fwrite
        - i_fatal
        - str_append
        - str_c
        - t_str_new
        - t_strdup
        - yy_get_next_buffer
        - yy_get_previous_state
        - yy_try_NUL_trans
      functionUses:    1
      BranchProfiles:
        - Branch String:   'event-filter-lexer.c:1018,3'
          Branch Sides:    []
        - Branch String:   'event-filter-lexer.c:1207,8'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter-lexer.c:960,4'
          Dst:             event_filter_parser_ensure_buffer_stack
        - Src:             'event-filter-lexer.c:962,5'
          Dst:             event_filter_parser__create_buffer
        - Src:             'event-filter-lexer.c:965,3'
          Dst:             event_filter_parser__load_buffer_state
        - Src:             'event-filter-lexer.l:51,16'
          Dst:             t_str_new
        - Src:             'event-filter-lexer.l:54,20'
          Dst:             str_c
        - Src:             'event-filter-lexer.l:59,3'
          Dst:             str_append
        - Src:             'event-filter-lexer.l:60,3'
          Dst:             str_append
        - Src:             'event-filter-lexer.l:61,3'
          Dst:             str_append
        - Src:             'event-filter-lexer.l:62,3'
          Dst:             str_append
        - Src:             'event-filter-lexer.l:68,17'
          Dst:             t_strdup
        - Src:             'event-filter-lexer.l:96,1'
          Dst:             fwrite
        - Src:             'event-filter-lexer.c:1176,23'
          Dst:             yy_get_previous_state
        - Src:             'event-filter-lexer.c:1187,20'
          Dst:             yy_try_NUL_trans
        - Src:             'event-filter-lexer.c:1207,17'
          Dst:             yy_get_next_buffer
        - Src:             'event-filter-lexer.c:1242,24'
          Dst:             yy_get_previous_state
        - Src:             'event-filter-lexer.c:1252,24'
          Dst:             yy_get_previous_state
        - Src:             'event-filter-lexer.c:1262,3'
          Dst:             i_fatal
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yystpcpy
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yytnamerr
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1038
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          137
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
        - yystpcpy
      functionUses:    3
      BranchProfiles:
        - Branch String:   'event-filter-parser.c:1045,9'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter-parser.c:1073,12'
          Dst:             yystpcpy
        - Src:             'event-filter-parser.c:1075,12'
          Dst:             strlen
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    yydestruct
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    yysyntax_error
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1219
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          398
      EdgeCount:       86
      CyclomaticComplexity: 20
      functionsReached:
        - strlen
        - yytnamerr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'event-filter-parser.c:1165,3'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter-parser.c:1128,29'
          Dst:             yytnamerr
        - Src:             'event-filter-parser.c:1155,32'
          Dst:             yytnamerr
        - Src:             'event-filter-parser.c:1184,37'
          Dst:             strlen
        - Src:             'event-filter-parser.c:1209,18'
          Dst:             yytnamerr
    - functionName:    key_value
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          437
      EdgeCount:       72
      CyclomaticComplexity: 15
      functionsReached:
        - event_category_find_registered
        - event_filter_category_to_log_type
        - i_unreached
        - malloc_multiply_check
        - net_parse_range
        - p_malloc
        - p_strdup
        - str_parse_get_interval_msecs
        - str_parse_get_size
        - str_to_intmax
        - str_unescape
        - strcmp
        - strlen
        - strspn
        - toupper
        - wildcard_is_escaped_literal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'event-filter-parser.y:62,2'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter-parser.y:41,6'
          Dst:             strcmp
        - Src:             'event-filter-parser.y:43,11'
          Dst:             strcmp
        - Src:             'event-filter-parser.y:45,11'
          Dst:             strcmp
        - Src:             'event-filter-parser.y:57,9'
          Dst:             malloc_multiply_check
        - Src:             'event-filter-parser.y:57,9'
          Dst:             p_malloc
        - Src:             'event-filter-parser.y:64,3'
          Dst:             i_unreached
        - Src:             'event-filter-parser.y:66,7'
          Dst:             wildcard_is_escaped_literal
        - Src:             'event-filter-parser.y:68,41'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:68,28'
          Dst:             str_unescape
        - Src:             'event-filter-parser.y:70,28'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:75,40'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:75,27'
          Dst:             str_unescape
        - Src:             'event-filter-parser.y:79,8'
          Dst:             event_filter_category_to_log_type
        - Src:             'event-filter-parser.y:80,39'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:80,26'
          Dst:             str_unescape
        - Src:             'event-filter-parser.y:81,25'
          Dst:             event_category_find_registered
        - Src:             'event-filter-parser.y:85,21'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:89,7'
          Dst:             str_to_intmax
        - Src:             'event-filter-parser.y:93,14'
          Dst:             net_parse_range
        - Src:             'event-filter-parser.y:106,14'
          Dst:             str_parse_get_size
        - Src:             'event-filter-parser.y:107,20'
          Dst:             strlen
        - Src:             'event-filter-parser.y:107,20'
          Dst:             toupper
        - Src:             'event-filter-parser.y:112,29'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:128,10'
          Dst:             str_parse_get_interval_msecs
        - Src:             'event-filter-parser.y:136,20'
          Dst:             p_strdup
        - Src:             'event-filter-parser.y:137,8'
          Dst:             wildcard_is_escaped_literal
        - Src:             'event-filter-parser.y:139,5'
          Dst:             str_unescape
        - Src:             'event-filter-parser.y:140,15'
          Dst:             strspn
        - Src:             'event-filter-parser.y:140,44'
          Dst:             strlen
        - Src:             'event-filter-parser.y:152,3'
          Dst:             i_unreached
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    logic
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.y'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-parser.y:165,9'
          Dst:             malloc_multiply_check
        - Src:             'event-filter-parser.y:165,9'
          Dst:             p_malloc
    - functionName:    event_filter_parser_parse
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.c'
      linkageType:     externalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         164
      ICount:          1038
      EdgeCount:       209
      CyclomaticComplexity: 47
      functionsReached:
        - event_filter_parser_error
        - event_filter_parser_lex
        - key_value
        - logic
        - str_unescape
        - t_strdup_noconst
        - yydestruct
        - yysyntax_error
      functionUses:    1
      BranchProfiles:
        - Branch String:   'event-filter-parser.c:1500,3'
          Branch Sides:    []
      Callsites:
        - Src:             'event-filter-parser.c:1426,16'
          Dst:             event_filter_parser_lex
        - Src:             'event-filter-parser.y:202,50'
          Dst:             logic
        - Src:             'event-filter-parser.y:203,50'
          Dst:             logic
        - Src:             'event-filter-parser.y:204,50'
          Dst:             logic
        - Src:             'event-filter-parser.y:210,21'
          Dst:             key_value
        - Src:             'event-filter-parser.y:212,7'
          Dst:             event_filter_parser_error
        - Src:             'event-filter-parser.y:221,62'
          Dst:             t_strdup_noconst
        - Src:             'event-filter-parser.y:221,49'
          Dst:             str_unescape
        - Src:             'event-filter-parser.c:1688,33'
          Dst:             yysyntax_error
        - Src:             'event-filter-parser.c:1704,41'
          Dst:             yysyntax_error
        - Src:             'event-filter-parser.c:1708,9'
          Dst:             event_filter_parser_error
        - Src:             'event-filter-parser.c:1731,11'
          Dst:             yydestruct
        - Src:             'event-filter-parser.c:1785,7'
          Dst:             yydestruct
        - Src:             'event-filter-parser.c:1825,3'
          Dst:             event_filter_parser_error
        - Src:             'event-filter-parser.c:1840,7'
          Dst:             yydestruct
        - Src:             'event-filter-parser.c:1849,7'
          Dst:             yydestruct
    - functionName:    event_filter_parser_error
      functionSourceFile: '/src/dovecot/src/lib/event-filter-parser.y'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - t_strdup_printf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'event-filter-parser.y:31,17'
          Dst:             t_strdup_printf
    - functionName:    i_getgrgid
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getgrgid_r
        - gr_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:95,2'
          Dst:             __errno_location
        - Src:             'ipwd.c:97,3'
          Dst:             gr_init
        - Src:             'ipwd.c:98,11'
          Dst:             getgrgid_r
        - Src:             'ipwd.c:98,3'
          Dst:             __errno_location
        - Src:             'ipwd.c:99,11'
          Dst:             __errno_location
        - Src:             'ipwd.c:102,9'
          Dst:             __errno_location
    - functionName:    gr_init
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_realloc
        - nearest_power
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:31,23'
          Dst:             __errno_location
        - Src:             'ipwd.c:32,16'
          Dst:             nearest_power
        - Src:             'ipwd.c:35,11'
          Dst:             i_realloc
    - functionName:    getgrgid_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_getgrnam
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     externalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getgrnam_r
        - gr_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:81,2'
          Dst:             __errno_location
        - Src:             'ipwd.c:83,3'
          Dst:             gr_init
        - Src:             'ipwd.c:84,11'
          Dst:             getgrnam_r
        - Src:             'ipwd.c:84,3'
          Dst:             __errno_location
        - Src:             'ipwd.c:85,11'
          Dst:             __errno_location
        - Src:             'ipwd.c:88,9'
          Dst:             __errno_location
    - functionName:    getgrnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_getpwuid
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     externalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getpwuid_r
        - pw_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:67,2'
          Dst:             __errno_location
        - Src:             'ipwd.c:69,3'
          Dst:             pw_init
        - Src:             'ipwd.c:70,11'
          Dst:             getpwuid_r
        - Src:             'ipwd.c:70,3'
          Dst:             __errno_location
        - Src:             'ipwd.c:71,11'
          Dst:             __errno_location
        - Src:             'ipwd.c:74,9'
          Dst:             __errno_location
    - functionName:    pw_init
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - i_realloc
        - nearest_power
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:19,23'
          Dst:             __errno_location
        - Src:             'ipwd.c:20,16'
          Dst:             nearest_power
        - Src:             'ipwd.c:23,11'
          Dst:             i_realloc
    - functionName:    getpwuid_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_getpwnam
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     externalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - getpwnam_r
        - pw_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:49,2'
          Dst:             __errno_location
        - Src:             'ipwd.c:51,3'
          Dst:             pw_init
        - Src:             'ipwd.c:52,11'
          Dst:             getpwnam_r
        - Src:             'ipwd.c:52,3'
          Dst:             __errno_location
        - Src:             'ipwd.c:53,11'
          Dst:             __errno_location
        - Src:             'ipwd.c:56,6'
          Dst:             __errno_location
        - Src:             'ipwd.c:60,9'
          Dst:             __errno_location
    - functionName:    getpwnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipwd_deinit
      functionSourceFile: '/src/dovecot/src/lib/ipwd.c'
      linkageType:     externalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ipwd.c:41,2'
          Dst:             p_free_internal
        - Src:             'ipwd.c:42,2'
          Dst:             p_free_internal
    - functionName:    array_count_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_create_from_buffer_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_get_ioloop
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_switch_ioloop_to
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_get_disconnect_reason
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - i_stream_get_error
        - o_stream_get_error
        - t_strdup_printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:170,3'
          Dst:             __errno_location
        - Src:             'iostream.c:171,12'
          Dst:             i_stream_get_error
        - Src:             'iostream.c:173,3'
          Dst:             __errno_location
        - Src:             'iostream.c:174,12'
          Dst:             o_stream_get_error
        - Src:             'iostream.c:176,3'
          Dst:             __errno_location
        - Src:             'iostream.c:180,6'
          Dst:             __errno_location
        - Src:             'iostream.c:180,20'
          Dst:             __errno_location
        - Src:             'iostream.c:183,10'
          Dst:             t_strdup_printf
    - functionName:    io_stream_set_verror
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - i_strdup_vprintf
        - p_free_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:159,16'
          Dst:             i_strdup_vprintf
        - Src:             'iostream.c:160,2'
          Dst:             p_free_internal
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_set_error
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - io_stream_set_verror
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:150,2'
          Dst:             io_stream_set_verror
    - functionName:    array_delete_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_delete
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:246,31'
          Dst:             malloc_multiply_check
        - Src:             './array.h:247,9'
          Dst:             malloc_multiply_check
        - Src:             './array.h:246,2'
          Dst:             buffer_delete
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    array_get_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_count_i
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:255,13'
          Dst:             array_count_i
    - functionName:    io_stream_remove_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - array_delete_i
        - array_get_i
        - i_unreached
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:134,8'
          Dst:             array_get_i
        - Src:             'iostream.c:137,4'
          Dst:             array_delete_i
        - Src:             'iostream.c:141,2'
          Dst:             i_unreached
    - functionName:    array_append_space_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_append_space_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:339,9'
          Dst:             buffer_append_space_unsafe
    - functionName:    array_create_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_create_from_buffer_i
        - buffer_create_dynamic_max
        - malloc_multiply_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:149,3'
          Dst:             malloc_multiply_check
        - Src:             './array.h:148,11'
          Dst:             buffer_create_dynamic_max
        - Src:             './array.h:152,2'
          Dst:             array_create_from_buffer_i
    - functionName:    io_stream_add_destroy_callback
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - array_append_space_i
        - array_create_i
        - array_is_created_i
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:121,7'
          Dst:             array_is_created_i
        - Src:             'iostream.c:122,3'
          Dst:             array_create_i
        - Src:             'iostream.c:123,7'
          Dst:             array_append_space_i
    - functionName:    array_is_created_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_set_max_buffer_size
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_close
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_free_i
      functionSourceFile: '/src/dovecot/src/lib/./array.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - buffer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './array.h:160,2'
          Dst:             buffer_free
    - functionName:    io_stream_free
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - array_free_i
        - array_is_created_i
        - p_free_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:94,6'
          Dst:             array_is_created_i
        - Src:             'iostream.c:97,3'
          Dst:             array_free_i
        - Src:             'iostream.c:100,9'
          Dst:             p_free_internal
        - Src:             'iostream.c:101,9'
          Dst:             p_free_internal
        - Src:             'iostream.c:102,9'
          Dst:             p_free_internal
    - functionName:    io_stream_unref
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:81,2'
          Dst:             i_panic
    - functionName:    io_stream_ref
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:74,2'
          Dst:             i_panic
    - functionName:    io_stream_default_destroy
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_default_close
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_init
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_stream_create_fd_autoclose
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_fd_ref_autoclose
        - iostream_fd_init
        - iostream_fd_unref
        - o_stream_create_fd_ref_autoclose
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:43,31'
          Dst:             iostream_fd_init
        - Src:             'iostream.c:44,13'
          Dst:             i_stream_create_fd_ref_autoclose
        - Src:             'iostream.c:45,14'
          Dst:             o_stream_create_fd_ref_autoclose
        - Src:             'iostream.c:46,2'
          Dst:             iostream_fd_unref
    - functionName:    iostream_fd_init
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:11,28'
          Dst:             malloc_multiply_check
        - Src:             'iostream.c:11,28'
          Dst:             p_malloc
    - functionName:    iostream_fd_unref
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
        - p_free_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:27,2'
          Dst:             i_panic
        - Src:             'iostream.c:28,2'
          Dst:             i_panic
        - Src:             'iostream.c:34,2'
          Dst:             p_free_internal
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    iostream_fd_ref
      functionSourceFile: '/src/dovecot/src/lib/iostream.c'
      linkageType:     externalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'iostream.c:19,2'
          Dst:             i_panic
    - functionName:    i_stream_create_file
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_file_common
        - i_stream_set_name
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:292,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-file.c:292,12'
          Dst:             p_malloc
        - Src:             'istream-file.c:293,10'
          Dst:             i_stream_create_file_common
        - Src:             'istream-file.c:295,2'
          Dst:             i_stream_set_name
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    i_stream_create_file_common
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          244
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
        - fstat
        - i_panic
        - i_stream_create
        - i_stream_set_name
        - io_stream_set_error
        - t_strdup_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:213,13'
          Dst:             fstat
        - Src:             'istream-file.c:224,26'
          Dst:             t_strdup_printf
        - Src:             'istream-file.c:222,3'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:232,22'
          Dst:             fcntl
        - Src:             'istream-file.c:233,3'
          Dst:             i_panic
        - Src:             'istream-file.c:235,43'
          Dst:             __errno_location
        - Src:             'istream-file.c:236,3'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:244,10'
          Dst:             i_stream_create
        - Src:             'istream-file.c:246,2'
          Dst:             i_stream_set_name
    - functionName:    i_stream_file_close
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - i_error
        - i_stream_get_name
        - iostream_fd_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:24,3'
          Dst:             iostream_fd_unref
        - Src:             'istream-file.c:29,7'
          Dst:             close
        - Src:             'istream-file.c:29,7'
          Dst:             __errno_location
        - Src:             'istream-file.c:31,5'
          Dst:             i_stream_get_name
        - Src:             'istream-file.c:30,4'
          Dst:             i_error
    - functionName:    i_stream_file_read
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         73
      ICount:          453
      EdgeCount:       88
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - i_panic
        - i_stream_file_open
        - i_stream_try_alloc
        - io_stream_set_error
        - pread
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:59,7'
          Dst:             i_stream_try_alloc
        - Src:             'istream-file.c:63,7'
          Dst:             i_stream_file_open
        - Src:             'istream-file.c:65,3'
          Dst:             i_panic
        - Src:             'istream-file.c:71,9'
          Dst:             pread
        - Src:             'istream-file.c:78,9'
          Dst:             read
        - Src:             'istream-file.c:90,8'
          Dst:             __errno_location
        - Src:             'istream-file.c:90,26'
          Dst:             __errno_location
        - Src:             'istream-file.c:94,4'
          Dst:             __errno_location
        - Src:             'istream-file.c:94,4'
          Dst:             i_panic
        - Src:             'istream-file.c:97,4'
          Dst:             __errno_location
        - Src:             'istream-file.c:97,4'
          Dst:             i_panic
        - Src:             'istream-file.c:99,5'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:103,5'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:107,35'
          Dst:             __errno_location
        - Src:             'istream-file.c:113,3'
          Dst:             i_panic
        - Src:             'istream-file.c:114,3'
          Dst:             i_panic
        - Src:             'istream-file.c:128,2'
          Dst:             i_panic
        - Src:             'istream-file.c:129,2'
          Dst:             i_panic
    - functionName:    i_stream_file_seek
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:141,4'
          Dst:             i_panic
    - functionName:    i_stream_file_sync
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_file_stat
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fstat
        - i_error
        - i_stream_get_error
        - i_stream_get_name
        - io_stream_set_error
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:166,21'
          Dst:             i_stream_get_name
        - Src:             'istream-file.c:171,7'
          Dst:             fstat
        - Src:             'istream-file.c:172,35'
          Dst:             __errno_location
        - Src:             'istream-file.c:173,4'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:175,18'
          Dst:             i_stream_get_error
        - Src:             'istream-file.c:175,4'
          Dst:             i_error
        - Src:             'istream-file.c:179,7'
          Dst:             stat
        - Src:             'istream-file.c:180,35'
          Dst:             __errno_location
        - Src:             'istream-file.c:181,4'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:183,18'
          Dst:             i_stream_get_error
        - Src:             'istream-file.c:183,4'
          Dst:             i_error
    - functionName:    stat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    i_stream_file_open
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - i_stream_get_name
        - io_stream_set_error
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:39,21'
          Dst:             i_stream_get_name
        - Src:             'istream-file.c:41,15'
          Dst:             open
        - Src:             'istream-file.c:43,3'
          Dst:             io_stream_set_error
        - Src:             'istream-file.c:45,34'
          Dst:             __errno_location
    - 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:    i_stream_create_fd_ref_autoclose
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - i_stream_create_file_common
        - iostream_fd_ref
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:280,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-file.c:280,12'
          Dst:             p_malloc
        - Src:             'istream-file.c:282,2'
          Dst:             iostream_fd_ref
        - Src:             'istream-file.c:283,9'
          Dst:             i_stream_create_file_common
    - functionName:    i_stream_create_fd_autoclose
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_create_file_common
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:266,2'
          Dst:             i_panic
        - Src:             'istream-file.c:268,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-file.c:268,12'
          Dst:             p_malloc
        - Src:             'istream-file.c:269,10'
          Dst:             i_stream_create_file_common
    - functionName:    i_stream_create_fd
      functionSourceFile: '/src/dovecot/src/lib/istream-file.c'
      linkageType:     externalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - i_panic
        - i_stream_create_file_common
        - malloc_multiply_check
        - p_malloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'istream-file.c:254,2'
          Dst:             i_panic
        - Src:             'istream-file.c:256,12'
          Dst:             malloc_multiply_check
        - Src:             'istream-file.c:256,12'
          Dst:             p_malloc
        - Src:             'istream-file.c:257,9'
          Dst:             i_stream_create_file_common
    - functionName:    ioloop_iolist_del
      functionSourceFile: '/src/dovecot/src/lib/ioloop-iolist.c'
      linkageType:     externalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ioloop_iolist_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop-iolist.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          171
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - i_panic
        - i_unreached
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-iolist.c:22,3'
          Dst:             i_unreached
        - Src:             'ioloop-iolist.c:26,3'
          Dst:             i_panic
        - Src:             'ioloop-iolist.c:30,2'
          Dst:             i_panic
    - functionName:    io_notify_fd_find
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-fd.c'
      linkageType:     externalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_free_internal
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    io_notify_fd_free
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-fd.c'
      linkageType:     externalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - p_free_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-fd.c:39,2'
          Dst:             p_free_internal
    - functionName:    malloc_multiply_check
      functionSourceFile: '/src/dovecot/src/lib/./malloc-overflow.h'
      linkageType:     InternalLinkage
      functionLinenumber: 13
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './malloc-overflow.h:18,3'
          Dst:             i_panic
    - functionName:    p_malloc
      functionSourceFile: '/src/dovecot/src/lib/./mempool.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - i_panic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './mempool.h:119,3'
          Dst:             i_panic
    - functionName:    io_notify_fd_add
      functionSourceFile: '/src/dovecot/src/lib/ioloop-notify-fd.c'
      linkageType:     externalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - malloc_multiply_check
        - p_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ioloop-notify-fd.c:14,7'
          Dst:             malloc_multiply_check
        - Src:             'ioloop-notify-fd.c:14,7'
          Dst:             p_malloc
    - functionName:    str_begins_icase_with
      functionSourceFile: '/src/dovecot/src/lib/./strfuncs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_match_icase
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             './strfuncs.h:111,16'
          Dst:             str_match_icase
    - functionName:    str_parse_get_bool
      functionSourceFile: '/src/dovecot/src/lib/str-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strcasecmp
        - strcmp
        - t_strdup_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str-parse.c:155,6'
          Dst:             strcasecmp
        - Src:             'str-parse.c:156,6'
          Dst:             strcasecmp
        - Src:             'str-parse.c:156,37'
          Dst:             strcmp
        - Src:             'str-parse.c:158,11'
          Dst:             strcasecmp
        - Src:             'str-parse.c:161,14'
          Dst:             t_strdup_printf
    - functionName:    str_parse_get_size
      functionSourceFile: '/src/dovecot/src/lib/str-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          192
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - str_parse_uintmax
        - t_strconcat
        - toupper
      functionUses:    1
      BranchProfiles:
        - Branch String:   'str-parse.c:109,2'
          Branch Sides:    []
      Callsites:
        - Src:             'str-parse.c:104,6'
          Dst:             str_parse_uintmax
        - Src:             'str-parse.c:105,14'
          Dst:             t_strconcat
        - Src:             'str-parse.c:109,10'
          Dst:             toupper
        - Src:             'str-parse.c:134,7'
          Dst:             toupper
        - Src:             'str-parse.c:136,7'
          Dst:             toupper
        - Src:             'str-parse.c:140,14'
          Dst:             t_strconcat
        - Src:             'str-parse.c:144,14'
          Dst:             t_strconcat
    - functionName:    str_parse_get_interval_msecs
      functionSourceFile: '/src/dovecot/src/lib/str-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_parse_get_interval_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str-parse.c:95,9'
          Dst:             str_parse_get_interval_full
    - functionName:    str_parse_get_interval_full
      functionSourceFile: '/src/dovecot/src/lib/str-parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          509
      EdgeCount:       158
      CyclomaticComplexity: 43
      functionsReached:
        - str_begins_icase_with
        - str_parse_uintmax
        - strlen
        - strncasecmp
        - t_strconcat
        - t_strdup_printf
        - toupper
      functionUses:    2
      BranchProfiles:
        - Branch String:   'str-parse.c:25,2'
          Branch Sides:    []
      Callsites:
        - Src:             'str-parse.c:15,6'
          Dst:             str_parse_uintmax
        - Src:             'str-parse.c:16,14'
          Dst:             t_strconcat
        - Src:             'str-parse.c:21,14'
          Dst:             t_strdup_printf
        - Src:             'str-parse.c:25,10'
          Dst:             toupper
        - Src:             'str-parse.c:28,7'
          Dst:             strlen
        - Src:             'str-parse.c:28,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:28,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:29,7'
          Dst:             strlen
        - Src:             'str-parse.c:29,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:29,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:34,7'
          Dst:             strlen
        - Src:             'str-parse.c:34,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:34,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:35,7'
          Dst:             strlen
        - Src:             'str-parse.c:35,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:35,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:37,12'
          Dst:             strlen
        - Src:             'str-parse.c:37,12'
          Dst:             strncasecmp
        - Src:             'str-parse.c:37,12'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:38,5'
          Dst:             strlen
        - Src:             'str-parse.c:38,5'
          Dst:             strncasecmp
        - Src:             'str-parse.c:38,5'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:39,5'
          Dst:             strlen
        - Src:             'str-parse.c:39,5'
          Dst:             strncasecmp
        - Src:             'str-parse.c:39,5'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:40,5'
          Dst:             strlen
        - Src:             'str-parse.c:40,5'
          Dst:             strncasecmp
        - Src:             'str-parse.c:40,5'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:51,15'
          Dst:             t_strdup_printf
        - Src:             'str-parse.c:58,7'
          Dst:             strlen
        - Src:             'str-parse.c:58,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:58,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:63,7'
          Dst:             strlen
        - Src:             'str-parse.c:63,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:63,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:68,7'
          Dst:             strlen
        - Src:             'str-parse.c:68,7'
          Dst:             strncasecmp
        - Src:             'str-parse.c:68,7'
          Dst:             str_begins_icase_with
        - Src:             'str-parse.c:74,14'
          Dst:             t_strconcat
        - Src:             'str-parse.c:78,14'
          Dst:             t_strconcat
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_parse_get_interval
      functionSourceFile: '/src/dovecot/src/lib/str-parse.c'
      linkageType:     externalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - str_parse_get_interval_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str-parse.c:89,9'
          Dst:             str_parse_get_interval_full
...
